【问题标题】:Full outer join and count全外连接和计数
【发布时间】:2015-11-06 09:58:42
【问题描述】:

我尝试在 LINQ 中重新创建以下 SQL 查询以返回 JSON:

SELECT a.Title, COUNT(b.ActionID) FROM labels a
FULL JOIN [Values] b ON a.ID = b.ID
GROUP BY a.Title

我试过了:

public ActionResult Json()
{

    IEnumerable < object > query = (from a in db.Labels
                                    join b in db.Values on a.ID equals b.ID  
                                    group b.ID by a.Title into grp
                                    select new
                                    {
                                        Label = grp.Key,
                                        Value = grp.Count()

                                 }).ToList();

    return Json(query, JsonRequestBehavior.AllowGet);
}

Result 只返回有值的标签:

[{"Label":"New","Value":2}]

但我需要的是:

[
{"Label":"A","Value":2},
{"Label":"B","Value":0},
{"Label":"C","Value":0},
]

【问题讨论】:

    标签: c# sql sql-server linq asp.net-mvc-4


    【解决方案1】:

    你为什么不这样做:

    IEnumerable < object > query = (from a in db.Labels
                                    select new
                                    {
                                        Label = a.Title,
                                        Value = db.Values
                                                  .Where(w=>w.ID==a.ID)
                                                  .Count()
                                     }).ToList();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 2012-07-27
      • 2014-09-23
      • 1970-01-01
      • 1970-01-01
      • 2012-04-21
      • 1970-01-01
      相关资源
      最近更新 更多