我正在以id为基础从数据库中检索数据,可以看出,
public ActionResult loadEpisodes(int id, string name, int epId)
{
ViewBag.LoadEps = db.VideoEpisode
.Where(ve => ve.VideoId == id && ve.IsActive == true)
.OrderByDescending(c => c.Sequence);
//some other code removed for the ease
return view();
}
它将返回某些'id'的剧集和降序序列值。
我的问题是,如果有办法按降序检索数据,但订单必须从剧集ID'epId'开始
我尝试了上述方法,但失败了
ViewBag.LoadEps = db.VideoEpisode
.Where(ve => ve.VideoId == id && ve.IsActive == true)
.OrderBy(c=>c.Sequence)
.First(c=> c.VideoEpisodeId ==epId);
答案 0 :(得分:1)
编辑:如果我正确理解了问题,您希望订单首先是Id epId
的给定剧集,然后是按顺序排序的列表。
我不确定是否可以在一个Linq查询中完成。
如何创建新列表,将您选择的VideoEpisode
作为第一个元素,然后在此之后附加其他剧集的排序列表。类似的东西:
var Loadeps = new List<VideoEpisode>();
Loadeps.Add(db.VideoEpisode.First(c=> c.VideoEpisodeId ==epId));
Loadeps.Add(db.VideoEpisode
.Where(ve => ve.VideoId == id && ve.IsActive == true && c.VideoEpisodeId != epId)
.OrderByDescending(c => c.Sequence)).toList();