Указанный тип элемента «Дата» не поддерживается в исключении LINQ to Entities - при сравнении двух значений DateTime в LINQ, где условие - PullRequest
0 голосов
/ 23 января 2019

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

при попытке сравнить два значения Datetime в LINQ, где условие.

Я также использовал DbFunctions.TruncateTime, но я получаю то же исключение.

var now = System.DateTime.Now;    
documents.Where(d => DbFunctions.TruncateTime(d.ExpirationDate.Date) < DbFunctions.TruncateTime(now));

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Фактическая проблема была с .Date часть. Поэтому вместо использования

var now = System.DateTime.Now;    
documents.Where(d => DbFunctions.TruncateTime(d.ExpirationDate.Date) < DbFunctions.TruncateTime(now));

Я использую

var now = System.DateTime.Now;    
documents.Where(d => DbFunctions.TruncateTime(d.ExpirationDate) < DbFunctions.TruncateTime(now));

Кроме того, следующее также работает без проблем.

var now = System.DateTime.Now;    
documents.Where(d => d.ExpirationDate < now)

Кредит должен идти на этот ресурс - Указанный член типа «Дата» не поддерживается в исключении LINQ to Entities - Entity Framework

0 голосов
/ 23 января 2019

Как насчет?

var now = System.DateTime.Now;    
documents.Where(d => d.ExpirationDate < now)

или

var now = System.DateTime.Now;    
documents.Where(d => d.ExpirationDate.Date < now.Date)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...