例如,如果我有一个 Linq to SQL 数据上下文,或者如果我有映射到数据库表的 ADO.NET Entity Framework 实体,并且我想测试单个客户...
有很大区别吗:
MyDatabaseContext.Customers.Any(c => c.CustomerId == 3)
和
MyDatabaseContext.Customers.Where(c => c.CustomerId == 3)
.Any<> - 返回类型 bool
.Where<> - 返回类型 IQueryable
编辑:接受 Fredrik Mörk 的回答后更正问题措辞 - 谢谢。
最佳答案
再次查看文档:
Any
可能存在性能差异一旦确定结果(当它找到匹配项时)就会停止,而 Where
在返回结果之前将需要始终遍历所有项目。所以如果只需要检查是否有匹配项,Any
将是工作的方法。
关于.net - 在 LINQ 中,.Any<> 和 .Where<> 测试记录存在性的主要区别/用途是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1404039/