Указанный тип члена «Дата» не поддерживается в LINQ to Entities. DbFunctions.TruncateTime () - PullRequest
0 голосов
/ 14 февраля 2020
Question question = 
         db.Questions
           .Where(q => DbFunctions.TruncateTime(q.Day.DayDate) == DbFunctions.TruncateTime(DateTime.Now.Date))
           .Where(q => q.Order == id)
           .FirstOrDefault();

Когда я пытаюсь выполнить приведенный выше оператор, я получаю следующую ошибку:

Указанный тип элемента 'Date' не поддерживается в LINQ to Entities

Я думал, что метод DbFunctions.TruncateTime() решит эту проблему, как предлагалось во многих сообщениях, которые я видел, однако я все еще получаю ошибку. Я также пытался просто применить метод к значению базы данных, но все равно получаю ту же ошибку.

Question question = 
         db.Questions
           .Where(q => DbFunctions.TruncateTime(q.Day.DayDate) == DateTime.Now.Date)
           .Where(q => q.Order == id) 
           .FirstOrDefault();

1 Ответ

1 голос
/ 14 февраля 2020

Вам нужно вывести DateTime в переменную до LINQ:

var dateOfNow = DateTime.Now.Date;

Question question = 
         db.Questions
           .Where(q => DbFunctions.TruncateTime(q.Day.DayDate) == dateOfNow)
           .Where(q => q.Order == id) 
           .FirstOrDefault();
...