[英]Select inside select (SQL to lambda linq expression)
Select Label,
(SELECT COUNT(*) from [CourtSessions] cs where cs.iDCity = Cit.ID) as courts,
(Select COUNT(*) from [Cases] c inner join [CourtSessions] cs ON c.ID = cs.iDCase where cs.iDCity = Cit.ID) as csnatures
FROM Cities Cit
Group by Label, id
我试过了但是没用
var data = db.Cities
.GroupBy(a => a.label)
.Select(g => new
{
city = g.Key,
sessions = db.CourtSessions.Include(p => p.CityTB).Count(o => o.CityTB.label == g.Key),
cases = db.Cases.Join(db.CourtSessions, u => u.ID, ui => ui.iDCase, (u, ui) => new { u, ui }).Count(m => m.ui.CityTB.label == g.Key)
});
CityTB是外键的地方
案例(ID ...)
城市(ID,标签)
CourtSession(ID,iDCase,iDCity ... CasesTB,CityTB)
我收到这个例外
base {System.Exception} = {“ LINQ to Entities无法识别方法'System.Linq.IQueryable
1[LawbookMVC.Models.CourtSession] Include[CourtSession,City](System.Linq.IQueryable
1 [LawbookMVC.Models.CourtSession ],System.Linq.Expressions.Expression1[System.Func
2 [LawbookMVC.Mod ...
谢谢。
好吧,我解决了,谢谢大家
var dat = db.Cities
.GroupBy(a => new { a.label, a.ID})
.Select(g => new
{
city = g.Key.label,
sessions = db.CourtSessions.Count(o => o.iDCity == g.Key.ID),//,
cases = db.Cases.Join(db.CourtSessions, u => u.ID, ui => ui.iDCase, (u, ui) => new { u, ui }).Count(m => m.ui.CityTB.label == g.Key.label)
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.