Linq To Entities DayOfYear替代MySQL

时间:2014-03-05 16:48:59

标签: c# mysql linq entity-framework

我需要使用Linq to Entities连接到MySQL数据库,根据一年中的周数进行分组。我当前的查询看起来像。

entities.GroupBy(t => t.StartTime.Year + "/" + 
    (int)Math.Floor((double)(t.StartTime.DayOfYear - 1) / 7.0))

然而,这不起作用,因为实体框架无法正确映射DayOfYear。有没有 我可以实现这一点,仍然使用Linq to Entities。

我正在使用Entity Framework 5.0。

2 个答案:

答案 0 :(得分:2)

尝试使用SqlFunctions.DatePart静态方法:

entities.GroupBy(t => t.StartTime.Year + "/" + 
    (int)Math.Floor((double)(SqlFunctions.DatePart("dy", t.StartTime.DayOfYear)) / 7.0))

但我不确定它是否适用于MySQL数据库。

答案 1 :(得分:0)

原来我做不到。不容易。所以我写了一个存储过程来完成繁重的工作并使用MySQL内置的功能DAY OF YEAR。