DateTime и LinqToEntities - PullRequest
       2

DateTime и LinqToEntities

2 голосов
/ 15 августа 2011

У меня есть поле DateTime, в котором хранятся дата + время. Мне нужно использовать только часть даты, поэтому я стараюсь:

            query = query.Where(p => p.CreatedDateTime.Date == DateStart);

но я получаю следующую ошибку:

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

почему и как это исправить?

Ответы [ 2 ]

5 голосов
/ 15 августа 2011

что по этому поводу:

query = query.Where(p => EntityFunctions.TruncateTime(p.CreatedDateTime) == DateStart);
1 голос
/ 15 августа 2011

Вы не можете использовать функции расширения в запросах LINQ, которые приводят к попаданию в базу данных, если Entity Framework не может преобразовать это в действительное SQL.

. Возможно, существует более компактное решение, носледующие должны работать нормально:

query = query.Where(p => 
    p.CreatedDateTime.Year == DateStart.Year &&
    p.CreatedDateTime.Month == DateStart.Month &&
    p.CreatedDateTime.Day == DateStart.Day);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...