LINQ 2 Entities-запрос не работает, но почему? - PullRequest
2 голосов
/ 13 января 2012

все!)) Вот код.

var existingEntities = (from record in globalOne.serviceContext.records_out
                        where record.timestamp.Date == DateTime.Now.Date
                        select record ).ToList();

Это не работает.

Другой код:

var existingEntities = (from record in globalOne.serviceContext.records_out
                 where record.timestamp.Day == DateTime.Now.Day
                 select record ).ToList();

Это работает.

Так, идентификатор проблемы в следующей строке:

where record.timestamp.**Date** == DateTime.Now.Date

тоже не подойдет

where record.timestamp.Date.Equals(DateTime.Now.Date)

Но почему?Я понятия не имею.Поле «Timestamp» является полем dateTime в MS SQL SERVER.И - в таблице NO записей.

И я чуть не забыл - что это значит - "не работает".Приложение просто не достигнет точки останова после этого запроса (первого), без каких-либо ошибок, без чего-либо.

Спасибо.

1 Ответ

2 голосов
/ 13 января 2012

Вы можете вызвать record.timestamp.Date, потому что EF не может преобразовать его в требуемое дерево выражений (затем преобразовать его в команду sql). На самом деле EF поддерживает ограниченное количество функций и свойств, но для DateTime у EF есть несколько хороших канонических функций . Вы можете использовать их в своем случае, например, вы можете использовать функции Day (), Month (), Year () для решения вашей проблемы (см. Ссылку).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...