У нас есть приложение EF6 на основе EDMX, в котором мы хотели бы выполнить запрос LINQ, подобный этому.
string category = ... // comes from somewhere and equals to null
context.Product.Where(e => e.Category == category).ToArray();
Проблема, которую я вижу, состоит в том, что сгенерированный SQL содержит [table].[Category] = @p...
в предложении where независимо от того, является ли переменная category
null
или нет. Таким образом, в конце дня запрос не возвращает результатов, если переменная null
, вместо генерации правильных is null
критериев и возврата правильных строк.
Я проверил с явным e => e.Category == null
выражение и это генерирует is null
, как и ожидалось.
Я также проверил EDMX и SQL, и соответствующий столбец Category
действительно обнуляется в обоих местах, так что может не быть проблемой.
Любая помощь будет оценена.