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();
复制代码

 

复制代码
            var userMapMessageIsReadListLinq = from um in sys_UserMapMessageService
                                                                               .GetQueryable(x =>
                                                                               x.CreatorID == userid ||
                                                                               x.ReceiverID == userid)
                                               group um by
                                               new
                                               {
                                                   um.CreatorID,
                                                   um.ReceiverID
                                               } into g
                                               select new UserMapMessageIsReadList
                                               {
                                                   Id = g.Max(x => x.Id),
                                                   NoReadCount = g.Count(x => !x.IsRead)
                                               };
复制代码

 

posted @   是你晨曦哥呀  阅读(1177)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
主题色彩
点击右上角即可分享
微信分享提示