GetWeekOfYear with Entity Framework
我的表中有一个名为Date
的列,我需要将这个日期的WeekOfTheYear
与DateTime.Now
的WeekOfTheYear
进行比较,
如果我这样给,
var cal = CultureInfo.CurrentCulture.Calendar; int week = cal.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
我在这里得到26
分。 同样,在我的entity framework中,我需要比较本周的数据,为此我试过,
entities.WorkingDays.Where(a => cal.GetWeekOfYear(a.DATE,CalendarWeekRule.FirstDay,DayOfWeek.Sunday) == cal.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Sunday)
当我像这样运行查询时,我得到的错误就像,
“LINQ to Entities无法识别方法’Int32 GetWeekOfYear(System.DateTime,System.Globalization.CalendarWeekRule,System.DayOfWeek)’方法,并且此方法无法转换为商店表达式。”
我如何在这里每周获取数据,任何人都可以帮助我….在此先感谢
首先调用.ToList()。 像这样:
entities.WorkingDays.ToList().Where(a => cal.GetWeekOfYear(a.DATE,CalendarWeekRule.FirstDay,DayOfWeek.Sunday) == cal.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Sunday)
请参阅此post以了解重复问题。 基本上,在使用GetWeekOfYear函数之前,数据需要在内存中。
正如评论中所指出的,这确实将整个“WorkingDays”表带入内存,因此从数据库中获取的数据超出了所需数据。 有时这比使用存储过程更有利,有时则不然,具体取决于基于应用程序/数据库体系结构的数据量和其他因素。
您可以使用一年中的某一天,并在两个实例上除以7,并获得足够的结果?
Date.DayOfYear / 7
- 适用于Asp.Net MVC 5应用程序中所有模型的Models.ApplicationDbContext?
- 如何在Asp.net C#中创建响应式移动支持的GridView?
- 如何将数据从数据库显示到文本框中,并进行更新
- ASP.NET:权限/身份validation体系结构
- 如何在生产中捕获HttpRequestValidationException
- 使用dropdownlist时Asp.net mvc ModelState的有效性
- 从GridView ItemTemplate按钮执行Javascript函数单击ASP.NET Web窗体
- 如何在母版页中创建创建变量/属性,让子页面访问它们?
- 在HTML中将HTML内容写入Word文档时出现问题