2010-07-04 2 views
0

Почему этот код генерирует System.NotSupportedException, говорящий, что The specified method 'int? DateDiff(string, DateTime?, DateTime?)' on the type 'System.Data.Objects.SqlClient.SqlFunctions' cannot be translated into a LINQ to Entities store expression, хотя DateDiff имеет атрибут EdmFunction?Сравнение DateTime в Entity Framework с базой данных Sql Server Compact

context.Users.Where(f => System.Data.Objects.SqlClient.SqlFunctions.DateDiff("second", f.LastLogOn, somedatetime) < 0) 

ответ

2

Вот полный перечень канонических функций даты и времени, поддерживаемые Entity SQL запросов поставщика link.

Попробуйте что-то вроде этого

context.Users.Where(f=>EntityFunctions.DiffSeconds(f.LastLogOn, somedatetime)<0); 
+0

Спасибо за ответ, но это не SQLCE Sql Server, он не поддерживает ни сравнивать, кроме DateDiff функции. – Parsa

+0

Насколько я понимаю, эта функция будет переведена в DateDiff. Попробуйте :) –

+0

Для платформы Entity Framework версии 6 рассмотрим использование 'DbFunctions.DiffSeconds' – Dherik

Смежные вопросы