在LINQ到实体异常中不支持指定类型成员Date的寻址
本文关键字:类型 成员 Date 寻址 不支持 LINQ 实体 异常 | 更新日期: 2023-09-27 17:50:46
在下面的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函数时,尽管如此异常仍然跳跃。如有任何帮助,不胜感激
在LINQ查询中的任何DateTime
对象中,只需使用该对象,而不是Date
成员,如:c.EffectiveDate
.
EF不能将Date属性转换为T-SQL,这就是它遇到问题的原因。