2017-09-14 116 views
0

我儘量讓使用LINQ左查詢:LEFT JOIN與LINQ用的EntityFramework

public IQueryable<Mutatie> GetMutaties() 
     { 
      var query = (from m in context.Mutatie 
         join d in context.tblDienstverband on m.fkDienstVerbandID equals d.DienstverbandID 
         join med in context.tblMedewerker on d.fkMedewerkerID equals med.MedewerkerID 
         where med.fkKlantID == this.klantId 
         select m).Include(d => d.fkDienstVerbandID); 
      return query; 
     } 

但如何讓這有一個留網址查詢?

謝謝

我有現在這樣的:

var query = (from m in context.Mutatie 
         join d in context.tblDienstverband on m.fkDienstVerbandID equals d.DienstverbandID into grp 
         from d in grp.DefaultIfEmpty() 

         join med in context.tblMedewerker on d.fkMedewerkerID equals med.MedewerkerID into grp1 
         from med in grp.DefaultIfEmpty() 

         where med.fkMedewerkerID == this.klantId 
         select new { m, d, med }); 
      return query; 
+0

@請將w關於錯誤的更多細節CS0266 – hiule

回答

1

應該是這樣的:

注:d和MED爲空,如果沒有行匹配

public IQueryable<Mutatie> GetMutaties() 
{ 
    var query = (from m in context.Mutatie 
       join d in context.tblDienstverband on m.fkDienstVerbandID equals d.DienstverbandID into grp 
       from d in grp.DefaultIfEmpty() 

       join med in context.tblMedewerker on d.fkMedewerkerID equals med.MedewerkerID into grp_med 
       from med in grp_med.DefaultIfEmpty() 

       where med.fkKlantID == this.klantId 
       //select new { m, d, med }; 
       select m; 
    return query; 
} 
+0

謝謝。但仍然有一些錯誤。 grp已經被轉貼 –

+0

@Nielsfischerein我更新了答案。我們來試試吧 – hiule

+0

謝謝。我編輯帖子 –