Json Linq选择分组方式&;计数

Json Linq选择分组方式&;计数,json,linq,d3.js,Json,Linq,D3.js,控制器应返回用作D3.js折线图源的数据。在控制器中,我有一个对象列表,我只对属性“Begin”和count(Begin)感兴趣。Begin是一个datetime,我想要的是将所有“Begin”在同一天的对象分组,然后计算每天的数量 我尝试选择此信息并以以下方式返回: var results = from a in db.Questionaires group a by a.Begin.Date into g

控制器应返回用作D3.js折线图源的数据。在控制器中,我有一个对象列表,我只对属性“Begin”和count(Begin)感兴趣。Begin是一个datetime,我想要的是将所有“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的例子,我将不胜感激。

你应该试试这个

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() };

谢谢如果我只想要结果日期(dd.mm.yyyy)和计数,那么我将如何实现?连接(…+““+…”)不起作用。我不确定您是否可以在将在数据库服务器中执行的linq查询中直接进行连接。对象上可能有一个只读属性,该属性将使用这些内部值为您提供一个日期/日期时间对象