如何过滤OrderBy
How to filter the OrderBy
我正在根据 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();
}
它将 return 一些 'id' 的剧集并按降序排列值。
我的问题是,如果有办法按降序检索数据,但顺序必须从剧集 ID 开始 'epId'
我试过上面的方法,但是失败了
ViewBag.LoadEps = db.VideoEpisode
.Where(ve => ve.VideoId == id && ve.IsActive == true)
.OrderBy(c=>c.Sequence)
.First(c=> c.VideoEpisodeId ==epId);
编辑:如果我对问题的理解正确,您希望顺序首先是 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();
我正在根据 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();
}
它将 return 一些 'id' 的剧集并按降序排列值。
我的问题是,如果有办法按降序检索数据,但顺序必须从剧集 ID 开始 'epId'
我试过上面的方法,但是失败了
ViewBag.LoadEps = db.VideoEpisode
.Where(ve => ve.VideoId == id && ve.IsActive == true)
.OrderBy(c=>c.Sequence)
.First(c=> c.VideoEpisodeId ==epId);
编辑:如果我对问题的理解正确,您希望顺序首先是 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();