Я пытаюсь отфильтровать все строки в таблице SQL, имеющей определенную дату. Он работает, если столбец не имеет значения NULL, но сбой, если он есть.Фильтровать по нулевому полю datetime с помощью Linq
Это работает не обнуляемая полая дата и время:
ent.MyTable.Where(e => e.MyDate.Day == 12);
Очевидно, что это работает не для обнуляемой полой даты и времени. После выполнения некоторых поиска в Интернете, я нашел много «решения» этой проблемы, которые выглядят как на следующее:
ent.MyTable.Where(e => e.MyDate != null && e.MyDate.Day == 12);
К сожалению, это не работает для меня тоже. И это вполне понятно, почему, если я считаю, это сообщение об ошибке:
«System.Nullable» не содержит определение для «Дня» и не метод расширения «День» принятие первого аргумента типа «System.Nullable» может быть найдено (вы пропали без вести с помощью директивы или ссылка на сборку?)
Я хочу, чтобы избежать выборки все строки SQL и затем процеживают в .NET, так как я заинтересован только в очень небольшом количестве строк , Есть ли другой способ, который я не вижу в данный момент?
является 'MyDate' определяется как Nullable' DateTime' в классах? Если это так, ваша вторая строка не должна компилироваться. Если нет, то ваша модель не соответствует базе данных. – user3185569