Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多个OrderBy未正确排序_C#_Linq - Fatal编程技术网

C# 多个OrderBy未正确排序

C# 多个OrderBy未正确排序,c#,linq,C#,Linq,我尝试按周排序,然后在我的SQL表中排序(最终结果应该按id一起进行训练,然后按指定的顺序排序),但它给出了错误的顺序。我的LINQ声明有什么问题吗 private List<Workout> GetWorkouts(int id) { return new OPPDBContext().Workouts .Where(p=>p.ClientId == id).OrderBy(p => p.Order).OrderBy(p => p.Week

我尝试按周排序,然后在我的SQL表中排序(最终结果应该按id一起进行训练,然后按指定的顺序排序),但它给出了错误的顺序。我的LINQ声明有什么问题吗

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

这是因为第二个
.OrderBy
替换了第一个
.OrderBy
(您按ClientId排序,然后实际上放弃了它,按WeekId排序)

您需要使用
.OrderBy(…)。然后使用by(…)

return new OPPDBContext().Workouts.Where(p=>p.ClientId == id).OrderBy(p => p.Order).ThenBy(p => p.WeekId).ToList();


这是因为第二个
.OrderBy
替换了第一个
.OrderBy
(您正在按ClientId排序,然后实际放弃它以按WeekId排序)

您需要使用
.OrderBy(…)。然后使用by(…)

return new OPPDBContext().Workouts.Where(p=>p.ClientId == id).OrderBy(p => p.Order).ThenBy(p => p.WeekId).ToList();