请帮我将以下查询转换为LINQ语法。
select am.areaid, am.AreaName, MAX(am.pincode),count(ua.ApartmentID) from areamaster am
inner join MerchantServiceAreas msa on am.areaid = msa.areaid
left join apartmentmaster apm on am.areaid = apm.areaid
left join useraddress ua on apm.apartmentid = ua.apartmentid
group by am.areaid,am.areaname
我尝试使用以下语法但不起作用
(from ar in Entities.AreaMasters
join mrs in Entities.MerchantServiceAreas on ar.AreaID equals mrs.AreaID
join ap in Entities.ApartmentMasters on mrs.AreaID equals ap.AreaID into apl
from ap1 in apl.DefaultIfEmpty()
join ua in Entities.UserAddresses on ap1.ApartmentID equals ua.ApartmentID into ual
from ua1 in ual.DefaultIfEmpty()
where mrs.MerchantID == MerchantID
group ar
by new
{
ar.AreaID,
ar.AreaName,
ar.Pincode
} into uag
select new AreaComplex
{
AreaID = uag.Key.AreaID,
AreaName = uag.Key.AreaName,
}).ToList();
答案 0 :(得分:0)
删除ar.Pincode
group ar
by new
{
ar.AreaID,
ar.AreaName,
***ar.Pincode***
} into uag
答案 1 :(得分:0)
尝试代码:
var result= (from ar in Entities.AreaMasters
join mrs in Entities.MerchantServiceAreas on ar.AreaID equals mrs.AreaID
join ap in Entities.ApartmentMasters on mrs.AreaID equals ap.AreaID into apl
from ap1 in apl.DefaultIfEmpty()
join ua in Entities.UserAddresses on ap1.ApartmentID equals ua.ApartmentID into ual
from ua1 in ual.DefaultIfEmpty()
where mrs.MerchantID == MerchantID
group new { ar,mrs,ap1,ua1 }
by new
{
ar.AreaID,
ar.AreaName
} into uag
select new AreaComplex
{
AreaID = uag.FirstOrDefault().ar.AreaID,
AreaName = uag.FirstOrDefault().ar.AreaName,
Pincode= uag.Max(c=>c.ar.pincode),
Pincode= uag.Count(c=>c.ua1.ApartmentID),
}).ToList();
答案 2 :(得分:0)
试试这个语法,
ContentChild