【发布时间】:2015-02-04 21:10:17
【问题描述】:
在下面的查询中,我收到以下异常:
LINQ to Entities 无法识别方法 'Int32 GetWeekOfYear(System.DateTime,System.Globalization.CalendarWeekRule, System.DayOfWeek)' 方法,并且该方法不能翻译成 存储表达式。
查询:
var query = db.Cases
.Where(c => c.UserID == userId
&& ( string.IsNullOrEmpty( dateInterval ) || dateInterval.Equals( ControlValues.Today )?
DbFunctions.TruncateTime( c.EffectiveDate ).Value.Day == currentDayNum :
dateInterval.Equals(ControlValues.CurrentWeek) ?
CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(
DbFunctions.TruncateTime( c.EffectiveDate ).Value, CalendarWeekRule.FirstFourDayWeek,DayOfWeek.Monday) == currentWeekNum :
dateInterval.Equals(ControlValues.NextWeek) ?
CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(
DbFunctions.AddDays( DbFunctions.TruncateTime(c.EffectiveDate), 7 ).Value, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday ) == nextWeekNum :
dateInterval.Equals(ControlValues.CurrentMonth) ?
DbFunctions.TruncateTime(c.EffectiveDate).Value.Month == currentMonthNum :
true)
简而言之,有没有办法从 linq 查询中的数据库值中提取一年中的星期数?
【问题讨论】:
标签: c# linq entity-framework