LINQ 的替代品 .Contains()

WoI*_*IIe 5 c# sql linq performance entity-framework

我一直在寻找一些技巧来提高我的实体框架查询性能,并偶然发现了这篇有用的文章

这篇文章的作者提到了以下几点:

08 避免使用 contains

在 LINQ 中,我们使用 contains 方法来检查是否存在。它在 SQL 中被转换为“WHERE IN”,这会导致性能下降。

我还有哪些更快的替代方案?

fli*_*erg 1

它非常依赖于上下文,你应该关注的不是避免.Contains(),而是如何WHERE xx IN yy在 SQL 中避免。您可以加入吗?是否可以指定一个区间而不是离散值?

这里给出了一个完美的例子:避免 SQL WHERE NOT IN 子句

可以通过使用连接来避免它。

我想说,这WHERE xx IN yy通常只是解决方案的一半,通常您真正想要的是其他东西,而您只能到达一半,而不是直接到达那里,就像连接的情况一样。