Jam*_*ing 8 c# linq sql-server entity-framework
我有Entity Framework 6的LINQ查询:
var timeCapturesQuery = Context.TimeCaptures
.Where(t =>
&& t.StartDateTime.TimeOfDay < endTime
&& t.EndDateTime.TimeOfDay > startTime);
Run Code Online (Sandbox Code Playgroud)
EndTime和StartTime是类型的参数TimeSpan,StartDateTime和EndDateTime是表的列datetime.
不幸的是,我在运行时收到此错误:
LINQ to Entities不支持指定的类型成员'TimeOfDay'.仅支持初始值设定项,实体成员和实体导航属性.
如何在此LINQ查询中TimeSpan从DateTime(即SQL中的timefrom datetime)获取?
看起来像是DbFunctions.CreateTime你在寻找:
当用作LINQ to Entities查询的一部分时,此方法调用规范的CreateTime EDM函数来创建新的TimeSpan对象.
因此,要在两次之间获得结果,您可以:
var timeCapturesQuery = Context.TimeCaptures.Where(t =>
DbFunctions.CreateTime(t.StartDateTime.Hour, t.StartDateTime.Minute, t.StartDateTime.Second) < endTime &&
DbFunctions.CreateTime(t.EndDateTime.Hour, t.EndDateTime.Minute, t.EndDateTime.Second) > startTime);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2672 次 |
| 最近记录: |