在下面的linq查询中,我得到以下异常:
LINQ to Entities不支持指定的类型成员“Date”。 仅初始化程序,实体成员和实体导航属性 得到支持。
查询:
var query = db.Cases
.Where(
dateInterval.Equals( ControlValues.Today )? DbFunctions.TruncateTime( c.EffectiveDate.Date ).Value.Day == currentDayNum :
dateInterval.Equals(ControlValues.CurrentWeek) ? CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(
DbFunctions.TruncateTime( c.EffectiveDate.Date ).Value, CalendarWeekRule.FirstFourDayWeek,DayOfWeek.Monday) == currentWeekNum :
dateInterval.Equals(ControlValues.NextWeek) ? CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(
DbFunctions.AddDays( DbFunctions.TruncateTime(c.EffectiveDate.Date), 7 ).Value, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday ) == nextWeekNum :
dateInterval.Equals(ControlValues.CurrentMonth) ? DbFunctions.TruncateTime(c.EffectiveDate.Date).Value.Month == currentMonthNum : true)
正如您从代码中看到的那样,我已经在查询中使用了 DbFunctions.TruncateTime 函数,尽管如此,异常仍然在跳跃。任何帮助将不胜感激
答案 0 :(得分:0)
在您的LINQ查询中的任何DateTime
个对象中,只需使用该对象,而不是Date
成员,如下所示:c.EffectiveDate
。
EF无法将Date属性转换为T-SQL,这就是它遇到问题的原因。