簡體   English   中英

將此 join sql 查詢轉換為 linq

[英]convert this join sql query to linq

如何將此 sql 查詢轉換為 linq

 select sum(a.Count),b.PeriodDesc from dbo.tbl_Sample a,dbo.tbl_Period b 
 where a.PeriodID=b.PeriodID group by PeriodDesc 

tbl_Period -PeriodID,PeriodDesc
tbl_Sample - ID,Count,PeriodID

假設YourContext是生成的上下文,並且您在tbl_Periodtbl_Sample之間具有導航屬性, tbl_Period查詢將如下所示:

   using(var db = new YourContext())
   {
          var result = db.tbl_Sample.GroupBy(p=>p.tbl_Period.PeriodDesc)
          .Select(p => new {p.Key, p.Count()})
          //whateve you want to do ...
   }

請檢查一下

var result = (from a in tbl_Sample
group a by a.PeriodDesc into abc                         
join b in tbl_Period on abc.FirstOrDefault().PeriodID equals b.PeriodID    
 select new ModelName {
   SumofCount = abc.sum(m => m.Count), 

   PeriodDesc = b.PeriodDesc 
 }).tolist();

試試這個

var joinedTables = from p in listPeriod
join s in listSample on p.PeriodID equals s.PeriodID
select new { p.PeriodDesc, s.Count };

var result = from p in joinedTables
group p by p.PeriodDesc into g
select new { PeriodDesc = g.Key, Sum = g.Sum(p=>p.Count)};

Ofc 您必須使用正確的集合(或表實體)更改listPeriodlistSample

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM