Сравнить часть даты в предложении where - PullRequest
2 голосов
/ 21 ноября 2011

Если попытаться выполнить условие where для сравнения только части даты поля datetime с использованием этого кода,

var list =  products.Where(x => ((DateTime)x.PurchaseDate).Date >= dt_SelectDate.Value.Date);

Я использовал преобразование (DateTime), потому что EF не распознает .GetValueOrDefault(), а поле PurchaseDate имеет значение NULL.

ошибка, которую я получил,

Указанный элемент типа «Дата» не поддерживается в LINQ to Entities. Поддерживаются только инициализаторы, элементы сущностей и свойства навигации сущностей.

1 Ответ

4 голосов
/ 21 ноября 2011

Я думаю, вам нужен метод EntityFunctions.TruncateTime для сравнения (просто) дат.

Вот описание MSDN: http://msdn.microsoft.com/en-us/library/dd395596.aspx

...