如何过滤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();