//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