我正在尝试研究如何在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()
};
每次我运行时都会收到错误
“指定的类型成员'日期'是 LINQ to Entities不支持。 只有初始化者,实体成员和 实体导航属性是 支持“。
搜索我发现这个问题Here解决了这个问题......但是当使用Entity Framework运行它时,我得到了异常
“SQL无法识别该功能 Server Compact。 [功能名称= TRUNCATETIME,数据类型(如果已知)= ]“
任何想法都将不胜感激。谢谢!
答案 0 :(得分:1)
我所知道的唯一解决方案肯定是使用Year
或整数算术和组手动选择Month
,Day
,String.Concat
属性的串联在那。
答案 1 :(得分:1)
使用DbFunctions.TruncateTime(o.Occurred)在LINQ to SQL中获取Date。