在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到实体异常中不支持指定类型成员Date的寻址

在LINQ查询中的任何DateTime对象中,只需使用该对象,而不是Date成员,如:c.EffectiveDate .

EF不能将Date属性转换为T-SQL,这就是它遇到问题的原因。