Reputation: 89
I try to make a left query with linq:
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;
}
But how to make this to have a left query?
Thank you
I have it now like this:
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;
Upvotes: 0
Views: 39
Reputation: 1132
It should like this:
NOTE: d and med are null if no row match
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;
}
Upvotes: 1