我们一般在Where
表达式中添加多个条件,用&&
(||
)分隔。
假设,如果我堆叠多个 where 条件,性能会有什么不同吗?
例如:
是这条线
dbContext.Students.Where(s=> s.Section = 5 && s.Marks >50).ToList();
类似于
dbContext.Students.Where(s=>s.Section = 5).Where(s=>s.Marks > 50).ToList();
注意:以上行是可能的,因为 Where
返回 IQueryable,而 IQueryable 又具有 Where
。
最佳答案
您的语句到达数据库的时间是 .ToList()
被调用的时间。因此,您之前所做的不会在实践中产生太大差异。
但是从纯数学性能的角度来看,应该与背后的翻译过程有关。这可以通过@sujith karivelil 建议的实验或深入阅读来理解。
关于c# - 使用 Lambda 表达式堆叠 where 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53336646/