gpt4 book ai didi

c# - LINQ-query select statement before order by 反之亦然更好

转载 作者:太空宇宙 更新时间:2023-11-03 23:04:35 26 4
gpt4 key购买 nike

我想知道以下 3 个 Linq 表达式中哪一个是相等的,或者与其他表达式相比是否更好,为什么?

var studentDetails1 = context.Student.OrderBy(a => a.Age).Select(s => new { s.Name, s.Age }).ToList();


var studentDetails2 = context.Student.Select(s => new { s.Name, s.Age }).OrderBy(a => a.Age).ToList();


var studentDetails3 = context.Student.OrderBy(a => a.Age).ToList().Select(s => new { s.Name, s.Age });

(像往常一样,这里的 context 表示 DBContext,而 Student 是具有 Name 和 Age 属性的数据库实体)

最佳答案

正如 Lukasz Rozmejit 所回答的那样,它确实取决于 Entity Framework 方言的实现。通常前两个将评估为相同的 SQL。最后一个将获取不必要的数据并仅使用两列。数据库专家建议我不要在数据库中排序。 SQL CPU 时间是最昂贵的 CPU 时间。

var studentDetails1 = context.Student.Select(s => new { s.Name, s.Age }).ToList().OrderBy(a => a.Age);

这将在服务器中进行排序,而不是在数据库中使用 CPU。

关于c# - LINQ-query select statement before order by 反之亦然更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41775496/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com