多重订购不正确订购

时间:2019-04-10 04:44:14

标签: c# linq

我正在尝试按WeekId进行排序,然后在SQL表中进行排序(最终结果应按ID一起进行锻炼,然后按指定的顺序进行排序),但是给出的顺序错误。我的LINQ语句有问题吗?

<html>

<body>
  <div style="padding:0;margin:0;background-color:yellow">A</div>
</body>

</html>

表格:

enter image description here

结果:

enter image description here

预期结果:

private List<Workout> GetWorkouts(int id)
{
    return new OPPDBContext().Workouts
        .Where(p=>p.ClientId == id).OrderBy(p => p.Order).OrderBy(p => p.WeekId).ToList();
}

1 个答案:

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

OrderBy docs

ThenBy docs