У меня есть метод для построения выражения для запроса linq для заданного типа, свойства и значения. Это прекрасно работает до тех пор, пока свойство типа НЕ обнуляется. Вот пример, из которого я работаю (http://www.marcuswhitworth.com/2009/12/dynamic-linq-with-expression-trees) Я вызываю метод Equals для свойства. Однако я обнаружил, что метод Equals для типов Nullable принимает объект в качестве параметра вместо типа Nullable. Я попытался использовать GetValueOrDefault, чтобы скрыть нулевые значения, но EF не поддерживает этот метод. В качестве простого примера следующий код выдаст ошибку:
decimal? testVal = new decimal?(2100);
var test = (from i in context.Leases where i.AnnualRental.Equals(testVal) select i).ToList();
Однако, если вы используете == вместо метода Equals (), он будет работать нормально. Однако я не уверен, как преобразовать код для использования == вместо Equals (). Любые предложения будут с благодарностью.