我希望两次获得所有记录:
var Check1 = db.WorkingTs
.Where(x => DbFunctions.TruncateTime(x.WorkingTime).Value.TimeOfDay >= FTime.TimeOfDay
|| DbFunctions.TruncateTime(x.WorkingTime).Value.TimeOfDay <= FBtime.TimeOfDay
&& x.FlightsCid == Crewstuff.id)
.FirstOrDefault();
但是我收到以下错误:
指定的类型成员&#39;时间&#39; LINQ to Entities不支持。仅支持初始化程序,实体成员和实体导航属性
我也尝试DbFunctions.CreateTime()
,但仍会出现同样的错误。
由于
答案 0 :(得分:1)
首先创建新的DateTime变量。然后在你的查询中使用它。
var fTime = FTime.TimeOfDay;
var bTime = FBtime.TimeOfDay;
var Check1 = db.WorkingTs.Where(x =>
DbFunctions.CreateTime(x.WorkingTime.Hour, x.WorkingTime.Minute, x.WorkingTime.Second) >= fTime
|| DbFunctions.CreateTime(x.WorkingTime.Hour, x.WorkingTime.Minute, x.WorkingTime.Second) <= bTime
&& x.FlightsCid == Crewstuff.id).FirstOrDefault();
顺便说一句,您可以使用FirstOrDefault()而不是Where()
var fTime = FTime.TimeOfDay;
var bTime = FBtime.TimeOfDay;
var Check1 = db.WorkingTs.FirstOrDefault(x =>
DbFunctions.CreateTime(x.WorkingTime.Hour, x.WorkingTime.Minute, x.WorkingTime.Second) >= fTime
|| DbFunctions.CreateTime(x.WorkingTime.Hour, x.WorkingTime.Minute, x.WorkingTime.Second) <= bTime
&& x.FlightsCid == Crewstuff.id);