From 5a80c80799130b4190eaaaf63bb6037425a8d4e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nikolai=20Bj=C3=B8rndalseter?= <35340657+nikolai-mb@users.noreply.github.com> Date: Tue, 21 Nov 2023 11:24:07 +0100 Subject: [PATCH] Fixed cache pollution for in/nin filter expressions (#6711) --- .../src/Data/Filters/Expressions/FilterExpressionBuilder.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/HotChocolate/Data/src/Data/Filters/Expressions/FilterExpressionBuilder.cs b/src/HotChocolate/Data/src/Data/Filters/Expressions/FilterExpressionBuilder.cs index dbdcd590f7c..7e780397503 100644 --- a/src/HotChocolate/Data/src/Data/Filters/Expressions/FilterExpressionBuilder.cs +++ b/src/HotChocolate/Data/src/Data/Filters/Expressions/FilterExpressionBuilder.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Reflection; @@ -60,11 +61,14 @@ public static Expression In( Type genericType, object? parsedValue) { + var enumerableType = typeof(IEnumerable<>); + var enumerableGenericType = enumerableType.MakeGenericType(genericType); + return Expression.Call( typeof(Enumerable), nameof(Enumerable.Contains), new Type[] { genericType }, - Expression.Constant(parsedValue), + CreateParameter(parsedValue, enumerableGenericType), property); }