I am trying to convert the following query into a LINQ statement.
select u.code, u.id, count(d.unitid) from Unit u
Left join Package d on u.id= d.unitid and d.sstatus = 'Open'
where d.hunit is not null
group by u.code, u.id
This is what I have,
var result =
from U in Table<Unit>().ToList()
join D in Table<Package>().Where(x => x.status == "Open").ToList() on U.Id equals D.UnitId into def1
from def2 in def1.DefaultIfEmpty()
group def2 by new
{
U.Id,
U.code
} into grouped
select new
{
Hmy = grouped.Key.Id,
Code = grouped.Key.Code,
TotalPAckages = grouped.Count()
};
But, in above code, I am also getting the results with UnitId is null in Package table. I am not sure where and how to apply the Where clause part (where d.hunit is not null) in the above LINQ statement.