实体框架中Select和Where的区别

本文关键字:Where 区别 Select 框架 实体 | 更新日期: 2023-09-27 18:15:37

实体框架中.Select().Where()的区别是什么?如

return ContextSet().Select(x=> x.FirstName == "John")

ContextSet().Where(x=> x.FirstName == "John")

何时使用.Select vs .Where

实体框架中Select和Where的区别

Select是一个投影,因此您得到的是表达式x=> x.FirstName == "John"对服务器上ContextSet()中的每个元素求值。即大量的真/假值(与原始列表相同的数字)。如果您仔细查看,select将返回类似IEnumerable<bool>的内容(因为x=> x.FirstName == "John"的类型是bool类型)。

Where对结果进行过滤,返回原始类型的可枚举对象(无投影)。


所以,当你想保留所有结果,但改变它们的类型(投影它们)时,使用Select

当您想要过滤结果时,使用Where,保持原始类型

Where()是一个过滤器。

Select()选择了不同的数据。
您的Select()示例将返回一个布尔值集合。