我正在尝试仅按日期进行数据过滤(截断时间)。数据库中的字段是DateTime。
作为参考,我尝试了这个不起作用的解决方案: 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported 我应该使用被 DbFunctions 取代的 EntityFunctions ,但是,它仍然不起作用。
所以我搜索了更多试图找到一些看起来像我的代码,然后我找到了另一个链接:Using DbFunctions I get error: The specified type member 'Date' is not supported in LINQ to Entities 但我仍然得到同样的错误:
LINQ to Entities不支持指定的类型成员“Date”。仅支持初始化程序,实体成员和实体导航属性。
有什么建议吗?
我的代码:
var data = DateTime.Now.Date;
PostVisualizacoes visualizacao = db.PostVisualizacoes.Where(v => v.UsuId == usuario.UsuId && v.PosId == post.PosId && DbFunctions.TruncateTime(v.PosVisData.Date) == data).FirstOrDefault();
答案 0 :(得分:5)
如果您从.Date
媒体资源中移除PosVisData
来电,则可以避免该异常:
var data = DateTime.Now.Date;
PostVisualizacoes visualizacao = db.PostVisualizacoes.Where(v => v.UsuId == usuario.UsuId && v.PosId == post.PosId
&& DbFunctions.TruncateTime(v.PosVisData) == data)
.FirstOrDefault();
从DateTime
属性中提取日期部分是TruncateTime
静态方法的作用。