【发布时间】:2017-07-07 14:19:11
【问题描述】:
下面的 LINQ 查询确实有问题。我对这个错误做了很多研究,几乎我发现的所有内容都引用了 DbFunctions.TruncateTime() 的使用,但这似乎仍然对我不起作用。我希望有人可以看看这个,让我知道我哪里出错了。我要做的只是比较日期时间的日期部分,但我继续得到异常:LINQ to Entities 不支持指定的类型成员“日期”。仅支持初始化程序、实体成员和实体导航属性。
if (!db.MaintenanceWindows.Any(x => x.Id == Id &
DbFunctions.TruncateTime(x.BlockedDay) == DateTime.UtcNow.Date &
x.IsDeleted.Value == false))
{
...
}
TIA
【问题讨论】:
-
Date属性在这里如何DateTime.UtcNow.Date -
我的意思是,它使用了
Date属性——正是异常消息告诉你的:)你为什么不把它放到查询之外的变量中。 -
因为不能翻译成sql查询,所以不是支持的规范函数。对于您想要支持的每个电话,都必须有人编写代码以确保可以翻译。
-
再次感谢您的快速响应。你们摇滚!
-
好吧,考虑到
TruncateTime是DateTime.Date属性的 db 等价物,我认为 EF 不支持它没有特殊原因。他们只是没有:)
标签: c# linq entity-framework-6