如何过滤OrderBy

时间:2015-03-18 13:11:41

标签: entity-framework entity-framework-6

我正在以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);

1 个答案:

答案 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();