实体框架中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
是一个投影,因此您得到的是表达式x=> x.FirstName == "John"
对服务器上ContextSet()
中的每个元素求值。即大量的真/假值(与原始列表相同的数字)。如果您仔细查看,select将返回类似IEnumerable<bool>
的内容(因为x=> x.FirstName == "John"
的类型是bool类型)。
Where
对结果进行过滤,返回原始类型的可枚举对象(无投影)。
所以,当你想保留所有结果,但改变它们的类型(投影它们)时,使用Select
。
当您想要过滤结果时,使用Where
,保持原始类型
Where()
是一个过滤器。
Select()
选择了不同的数据。
您的Select()
示例将返回一个布尔值集合。