EF 复杂语句的使用

//EF多重排序
context.Serials
                      .Where(s => ("," + s.VideoGenreIds + ",").Contains("," + genreIds + ",") && s.IsEnable && !s.IsDel)
                      .OrderByDescending(v => v.Weight)
                      .ThenByDescending(v => v.Hot)
                      .Skip((currentPage - 1) * pageSize)
                      .Take(pageSize)
                      .Select(v => new SerialBriefModel
                      {
                          Id = v.Id,
                          SerialName = v.SerialName,
                          LastEpisode = v.LastEpisode,
                          Description = v.Description,
                          PicturePath = v.PicturePath,
                          AddTime = v.AddTime
                      }).ToList();



//EF group的使用以及 两表连接


var model = context.Serials
                     .Where(s => s.Id == serialId && s.IsEnable && !s.IsDel)
                     .GroupJoin(context.SerialEpisodes.Where(e=>!e.IsDel), s => s.Id, e => e.SerialId, (s, e) 
                     => new SerialDetailModel
                     {
                         Id = s.Id,
                         SerialName = s.SerialName,
                         VideoAreaId = s.VideoAreaId,
                         VideoAreaName = s.VideoArea.AreaName,
                         VideoGenreIds = s.VideoGenreIds,
                         VideoLanguageId = s.VideoLanguageId,
                         VideoLanguageName = s.VideoLanguage.Language,
                         TotalEpisodes = s.TotalEpisodes,
                         LastEpisode = s.LastEpisode,
                         Director = s.Director,
                         Starring = s.Starring,
                         ReleaseYear = s.ReleaseYear,
                         PicturePath = s.PicturePath,
                         Description = s.Description,
                         Fee = s.VideoChargeMethod.Fee,
                         Hot = s.Hot,
                         Score = s.Score,
                         SerialEpisodes = e.OrderBy(se => se.SerialIndex).Select(se => new SerialEpisodeModel
                         {
                             Id = se.Id,
                             SerialIndex = se.SerialIndex,
                             TagName = se.SerialTag.TagName,
                             Title = se.Title,
                             Description = se.Description
                         }
                         ).ToList()
                     }).FirstOrDefault();

 

转载于:https://www.cnblogs.com/zoro-zero/p/5238675.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值