使用EF 4.1将Linq中的DateTime.Date分组为SQL

ant*_*ode 5 c# linq group-by entity-framework-4

我正在尝试研究如何在Linq to SQL的时间范围内将每个项目分组,但我无法使其正常工作.

   var graph = from o in DB.Context.Occurances
            where o.Occurred > fromDate && o.Occurred <= toDate
            group o by o.Occurred.Date into g
            orderby g.Key ascending 
            select new
                       {
                           Date = g.Key,
                           Occurances = g.Count()
                       };
Run Code Online (Sandbox Code Playgroud)

每次我运行这个我都会收到错误

"LINQ to Entities不支持指定的类型成员'Date'.仅支持初始值设定项,实体成员和实体导航属性."

搜索我发现这个问题在这里解决了这个问题...但是当使用Entity Framework运行它时,我得到了异常

"SQL Server Compact无法识别该函数.[函数名称= TRUNCATETIME,数据类型(如果已知)=]"

任何想法将不胜感激.谢谢!

Jon*_*Jon 1

我知道唯一可行的解​​决方案是使用整数算术和分组手动选择Year, Month,属性的串联。DayString.Concat

来源:CLR 方法到规范函数映射