LINQPad выдает исключение «TruncateTime (System.Nullable`1 [System.DateTime])» не имеет поддерживаемого перевода в SQL »при применении дампа к результатам - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть запрос Linq, выполненный в LINQPad. В этом запросе есть предложения from, join и предложение where (не используются ни group by, ни order by).

В предложении where, которое я использую нижеприведенной функцией для удаления времени из поля DateTime:

System.Data.Entity.DbFunctions.TruncateTime(myField)

Этот запрос возвращает результаты в:

IQueryable<MyCustomClass>

Когда я выполняю запрос из LINQPad, он выполняется правильно без ошибок, но если я выполняю results.Dump () или results.ToList (). Dump () для просмотра результатов в LINQPad я получаю сообщение об ошибке ниже:

TruncateTime (System.Nullable`1 [System.DateTime]) 'не имеет поддерживаемого перевода в SQL.'

1 Ответ

1 голос
/ 07 мая 2020

Это не спецификация LinqPad c.

Это в основном означает, что предложение Where содержит некоторые условия, которые не могут быть успешно переведены с Linq на SQL.

Чтобы обойти это, вы можете разделить предложение where:

Первая часть предложения where содержит все SQL совместимые операции, затем добавьте .ToList(), который будет извлекать данные из базы данных, затем fini sh с non-SQL, но Linq to Object совместимая часть предложения where.

Я понимаю, что это вызовет большую тягу из базы данных, но это ограничение.

...