我正在尝试按WeekId进行排序,然后在SQL表中进行排序(最终结果应按ID一起进行锻炼,然后按指定的顺序进行排序),但是给出的顺序错误。我的LINQ语句有问题吗?
<html>
<body>
<div style="padding:0;margin:0;background-color:yellow">A</div>
</body>
</html>
表格:
结果:
预期结果:
private List<Workout> GetWorkouts(int id)
{
return new OPPDBContext().Workouts
.Where(p=>p.ClientId == id).OrderBy(p => p.Order).OrderBy(p => p.WeekId).ToList();
}
答案 0 :(得分:2)
这是因为第二个.OrderBy
替换了第一个.OrderBy
(您正在按ClientId进行排序,然后实际上将其丢弃以按WeekId进行排序)。
您需要改用.OrderBy(...).ThenBy(...)
:
return new OPPDBContext().Workouts.Where(p=>p.ClientId == id).OrderBy(p => p.Order).ThenBy(p => p.WeekId).ToList();