From ec6c310bf1ddcff6f699401a6a3cc9bfccbcaa15 Mon Sep 17 00:00:00 2001 From: alicak Date: Mon, 17 May 2021 07:51:37 +0200 Subject: [PATCH] pass filter values as parameters (#112) make GetClosureOverConstant really work --- Sieve/Services/SieveProcessor.cs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Sieve/Services/SieveProcessor.cs b/Sieve/Services/SieveProcessor.cs index ae75643..0d57a83 100644 --- a/Sieve/Services/SieveProcessor.cs +++ b/Sieve/Services/SieveProcessor.cs @@ -337,12 +337,10 @@ namespace Sieve.Services } // Workaround to ensure that the filter value gets passed as a parameter in generated SQL from EF Core - // See https://github.com/aspnet/EntityFrameworkCore/issues/3361 - // Expression.Constant passed the target type to allow Nullable comparison - // See http://bradwilson.typepad.com/blog/2008/07/creating-nullab.html private static Expression GetClosureOverConstant(T constant, Type targetType) { - return Expression.Constant(constant, targetType); + Expression> hoistedConstant = () => constant; + return Expression.Convert(hoistedConstant.Body, targetType); } private IQueryable ApplySorting(TSieveModel model, IQueryable result,