Linq-select group by&计数

时间:2013-08-18 18:30:39

标签: json linq d3.js

控制器应返回用作D3.js折线图源的数据。在控制器中,我有一个对象列表,我只对属性“Begin”和count(Begin)感兴趣。 Begin是一个日期时间,我想要的是将所有“Begin”在同一天的对象分组,然后计算每天的数字。

我尝试选择此信息并以这种方式返回:

        var results = from a in db.Questionaires
                  group a by a.Begin.Date into g
                  select new { Date = g.Key, Count = g.Count() };

        return Json( results, JsonRequestBehavior.AllowGet);

不幸的是,我收到错误,因为group by子句似乎是错误的(“LINQ to Entities中不支持指定的类型成员'Date'。仅支持初始值设定项,实体成员和实体导航属性。 “)。

如何以正确的方式选择信息?如果有人在D3.js和MVC上有一些例子我会很感激。

1 个答案:

答案 0 :(得分:1)

你应该试试这个

var results = from a in db.Questionaires
                  group a by new { y = a.Begin.Year, m = a.Begin.Month, d = a.Begin.Day} 
                  into g
                  select new { Day = g.Key.d, Year = g.Key.y, 
                              Month = g.Key.m, Count = g.Count(),
                              Date = g.Select(d=>d.Begin).FirstOrDefault() };