我在执行以下语句时遇到异常。
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.
我知道异常意味着什么,但我不知道如何摆脱它。有什么帮助吗?
最佳答案
您可以使用TruncateTime EntityFunctions的方法将 Date
属性正确转换为 SQL:
using System.Data.Objects; // you need this namespace for EntityFunctions
// ...
DateTime ruleData = Convert.ToDateTime(rule.data).Date;
return jobdescriptions
.Where(j => EntityFunctions.TruncateTime(j.JobDeadline) == ruleData);
更新: EntityFunctions
在 EF6 中已弃用,请使用 DbFunctions.TruncateTime
关于entity-framework - LINQ to Entities 异常中不支持指定的类型成员 'Date',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11597373/