entity-framework – 在LINQ to Entities Exception中不支持指定的类型成员“Date”

我在实现以下语句时遇到异常。

 DateTime result;
 if (!DateTime.TryParse(rule.data, out result))
     return jobdescriptions;
 if (result < new DateTime(1754, 1, 1)) // sql can't handle dates before 1-1-1753
     return jobdescriptions;
 return jobdescriptions.Where(j => j.JobDeadline.Date == Convert.ToDateTime(rule.data).Date );

例外

The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.

我知道什么是例外,但我不知道如何摆脱它。任何帮助?

LINQ to Entities无法将大多数.NET Date方法(包括您使用的转换)转换为SQL,因为没有等效的SQL。

解决方案是在LINQ语句之外使用Date方法,然后传入一个值。它看起来像Convert.ToDateTime(rule.data).Date导致错误。

DateTime属性上的调用日期也不能转换为SQL,因此一个解决方法是比较.Year .Month和.Day属性,它们可以转换为LINQ,因为它们只是整数。

var ruleDate = Convert.ToDateTime(rule.data).Date;
return jobdescriptions.Where(j => j.Deadline.Year == ruleDate.Year 
                       && j.Deadline.Month == ruleDate.Month 
                       && j.Deadline.Day == ruleDate.Day);
http://stackoverflow.com/questions/11597373/the-specified-type-member-date-is-not-supported-in-linq-to-entities-exception

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:entity-framework – 在LINQ to Entities Exception中不支持指定的类型成员“Date”