gpt4 book ai didi

c# - 使用 LINQ 从第一项中检索属性

转载 作者:太空宇宙 更新时间:2023-11-03 21:08:50 25 4
gpt4 key购买 nike

在 Linq 中是否有更简单的方法来编写此查询:

var prioritiy = db.Requirements.Where(r => r.ID == rowID).Select(r => r.Priority).First();

最佳答案

如果您的意思是“更简单”,如“更少的代码”,那么您的 self 回答已经是最紧凑的了:

db.Requirements.First(r => r.ID == rowID).Priority;

如果您的意思是“更简单”,如“更少的数据库开销”,那么您的原始版本会稍微好一些:

db.Requirements.Where(r => r.ID == rowID).Select(r => r.Priority).First();

为什么?正如@IvanStoev 在评论中指出的那样,LINQ 的执行被推迟到您调用像 First() 这样的“完成”方法时。如果您在后端使用 SQL,则第二个示例将被转换为仅从数据库中检索优先级字段的 SQL 语句,而第一个示例将检索匹配行的所有字段。

在我看来,这绝对是不必要的微优化领域,除非这段代码运行了数百万次或者整个数据库对象有大量的列。除非您正在做一些疯狂的事情,否则请使用您喜欢的风格!

关于c# - 使用 LINQ 从第一项中检索属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39186886/

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