2017-07-07 62 views
0

我真的遇到了下面的LINQ查询问题。我对这个错误做了大量的研究,几乎所有我发现的参考文献都使用了DbFunctions.TruncateTime(),但是这对我仍然不起作用。我希望有人可以看看这个,让我知道我哪里出错了。我所要做的只是比较日期时间的日期部分,但我仍然得到异常:LINQ to Entities不支持指定的类型成员'Date'。仅支持初始化程序,实体成员和实体导航属性。DbFunctions.TruncateTime()仍然生成“类型成员'日期'不支持”错误

if (!db.MaintenanceWindows.Any(x => x.Id == Id & 
DbFunctions.TruncateTime(x.BlockedDay) == DateTime.UtcNow.Date & 
x.IsDeleted.Value == false)) 
{ 
... 
} 

TIA

+2

'Date'属性如何'DateTime.UtcNow.Date' –

+0

是的,它呢?它在那里不行吗? – Nugs

+2

我的意思是,它使用'Date'属性 - 正是什么异常信息告诉你:)为什么你不把它放到查询之外的变量中。 –

回答

0

这不是抱怨DbFunctions.TruncateTime。它抱怨DateTime.UtcNow.Date

建议答:

if (!db.MaintenanceWindows.Any(x => x.Id == Id && 
    DbFunctions.TruncateTime(x.BlockedDay) == DbFunctions.TruncateTime(DateTime.UtcNow) && 
    x.IsDeleted.Value == false)) 

建议B:

var utcNow = DateTime.UtcNow.Date; 
if (!db.MaintenanceWindows.Any(x => x.Id == Id && 
    DbFunctions.TruncateTime(x.BlockedDay) == utcNow && 
    x.IsDeleted.Value == false)) 

而且,你在表达会希望 “逻辑与”(&&)。

相关问题