2015-11-06 3 views
0

Я пытаюсь воссоздать следующий SQL запрос в LINQ для возврата 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); 
} 

Результат возвращается только метки, которые имеют значение:

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

Но что мне нужно:

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

ответ

2

Почему вы не просто делать это:

IEnumerable <object> query = (from a in db.Labels 
           select new 
           { 
            Label = a.Title, 
            Value = db.Values 
               .Where(w=>w.ID==a.ID) 
               .Count() 
           }).ToList(); 
Смежные вопросы