linq 多表分组左链接查询查询统计

return (from merchantsInfo in base.GetIQueryable(x => x.IsLogicDelete == false && x.FID != fid)
                    join userAccount in UserAccountDal.GetIQueryable(x => x.PrivilegeLevel > 0)
                    on merchantsInfo.UserAccountID equals userAccount.FID
                    join merchantsfrom in MerchantsInfoFormDAL.GetIQueryable(x => !x.IsLogicDelete)
                    on merchantsInfo.FID equals merchantsfrom.MerchantsInfoID into data
                    from merchants in data.DefaultIfEmpty()
                    group new { merchants.MerchantsInfoID } by new
                    {
                        merchantsInfo.FID,
                        merchantsInfo.Name,
                        merchantsInfo.BrandLabel,
                        merchantsInfo.MainPicture,
                        merchantsInfo.MerchantsAmountMax,
                        merchantsInfo.MerchantsAmountMin,
                        merchantsInfo.MerchantsAmountType,
                        merchantsInfo.ProjectName,
                        merchantsInfo.BelongIndustry,
                        merchantsInfo.BelongIndustryChild,
                        merchantsInfo.MerchantsArea,
                        merchantsInfo.MerchantsAreaCity,
                        merchantsInfo.MerchantsAreaCitySubset,
                        merchants.MerchantsInfoID
                    } into g
                    select new MerchantsModel
                    {
                        FID = g.Key.FID,
                        Name = g.Key.Name,
                        BrandLabel = g.Key.BrandLabel,
                        MainPicture = g.Key.MainPicture,
                        MerchantsAmountMax = g.Key.MerchantsAmountMax,
                        MerchantsAmountMin = g.Key.MerchantsAmountMin,
                        MerchantsAmountType = g.Key.MerchantsAmountType,
                        ProjectName = g.Key.ProjectName,
                        BelongIndustry = g.Key.BelongIndustry,
                        BelongIndustryChild = g.Key.BelongIndustryChild,
                        MerchantsArea = g.Key.MerchantsArea,
                        MerchantsAreaCity = g.Key.MerchantsAreaCity,
                        MerchantsAreaCitySubset = g.Key.MerchantsAreaCitySubset,
                        ApplyNum = g.Key.MerchantsInfoID == null ? 0 : g.Count()
                    }).Take(row).ToList();