在Entity Framework中使用此代码我收到以下错误.我需要获取特定日期的所有行,采用DateTimeStart
此格式的DataType类型2013-01-30 12:00:00.000
码:
var eventsCustom = eventCustomRepository.FindAllEventsCustomByUniqueStudentReference(userDevice.UniqueStudentReference)
.Where(x => x.DateTimeStart.Date == currentDateTime.Date);
Run Code Online (Sandbox Code Playgroud)
错误:
base {System.SystemException} = {"The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported."}
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决它?
我只需要在涉及datetime
字段的Linq查询中仅比较日期.但是,下面的语法会导致以下错误消息
The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.
有谁知道如何从datetime
字段中提取日期?
var duplicate = from a in _db.AgentProductTraining
where a.CourseCode == course.CourseCode &&
a.DateTaken.Date == course.DateTaken.Date &&
a.SymNumber == symNumber
select a;
Run Code Online (Sandbox Code Playgroud) 我需要检查Linq查询中两个日期是否相等,日期来自两个不同的表(不作为参数).我已经在网上和SO中查看了现有的解决方案.有些不适用于我的情况,有些不优雅.如果有的话,只是寻找更好的替代解决方案.
示例查询(需要仅比较日期部分):
var query = from t1 in Table1
join t2 in Table2 on t1.Id equals t2.ForeignKeyId
where t1.Id = someId
&& t1.Date1.Date.Equals(t2.Date2.Date)
Run Code Online (Sandbox Code Playgroud)
这个失败并出现错误"LINQ to Entitiies不支持''Date'.仅支持初始值设定项,实体成员和实体导航属性"
LINQ to Entities不支持帖子'Date'.仅支持初始化程序,实体成员和实体导航属性,该解决方案分别比较日,月和年.我试图将它包装成扩展方法,但似乎Linq也不喜欢扩展方法.由于第二个日期不是变量,我不能使用链接帖子中提到的其他解决方案(由于某种原因,我不能在Linq内部的日期调用"AddDays"方法).Linq中的Date API看起来有很多限制.
我正在尝试仅按日期进行数据过滤(截断时间).数据库中的字段是DateTime.
作为参考,我尝试了这个不起作用的解决方案: LINQ to Entities不支持"Date".只支持初始值设定项,实体成员和实体导航属性 ,我应该使用由DbFunctions替换的EntityFunctions,但是,它仍然无效.
所以我搜索更多试图找到一些看起来像我的代码,然后我发现了另一个链接:使用DbFunctions我得到错误:LINQ to Entities不支持指定的类型成员'Date' 但我仍然得到同样的错误:
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();
Run Code Online (Sandbox Code Playgroud)