我的asp.net mvc Web应用程序中有以下方法: -
public SystemInformation GetSystemInfo(int pagesize)
{
var d = DateTime.Today;
SystemInformation s = new SystemInformation()
{
DeleteNo = tms.TechnologyAudits.Where(a => (EntityFunctions.TruncateTime(a.DateTimeEnd.Date) == EntityFunctions.TruncateTime(d) && a.AuditAction.Name.ToLower() == "delete")).Count(),
};
return s;
}
但上述情况引发了以下异常: -
LINQ to不支持指定的类型成员'Date' 实体。仅初始化程序,实体成员和实体导航 支持属性。
答案 0 :(得分:4)
a.DateTimeEnd.Date
无法翻译。等价物是EntityFunctions.TruncateTime(a.DateTimeEnd)
。你不需要/不能同时使用它们。
与此实例具有相同日期的新对象和时间值 设置为午夜12:00:00(00:00:00)
清除时间部分的输入日期。
答案 1 :(得分:2)
LINQ to Entities无法将大多数.NET Date方法(包括您使用的转换)转换为SQL,因为没有等效的SQL。
在您的情况下,LINQ无法翻译此
(EntityFunctions.TruncateTime(a.DateTimeEnd.Date)
解决方案是将对象强制转换为LINQ语句,然后传入一个值。