繁体   English   中英

选择内部选择(SQL到Lambda linq表达式)

[英]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.Expression 1[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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM