寻址LINQ to Entities异常不支持指定的类型成员Date

时间:2014-03-18 17:54:53

标签: c# linq entity-framework

在下面的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 函数,尽管如此,异常仍然在跳跃。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

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

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