Linq To Entities DayOfYear的MySQL替代方案

3

我需要使用Linq to Entities连接到MySQL数据库,并基于一年中的周数执行分组。我的当前查询如下:

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

然而,由于Entity Framework无法正确映射DayOfYear,因此这种方法不起作用。是否有任何方法可以实现这一点,仍然使用Linq to Entities。

我正在使用Entity Framework 5.0。

2个回答

3
尝试使用SqlFunctions.DatePart静态方法:
entities.GroupBy(t => t.StartTime.Year + "/" + 
    (int)Math.Floor((double)(SqlFunctions.DatePart("dy", t.StartTime.DayOfYear)) / 7.0))

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


SqlFunctions 经常被忽视或不为人所知。它是一组非常好用的工具。 - Nate
1
很遗憾,我不能使用SqlFunctions,因为我正在通过MySQL Connector使用MySQL数据库。 - fungus1487

0
原来我不能。不容易。
所以我编写了一个存储过程来完成繁重的工作,并使用了MySQL内置函数DAYOYEAR。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接