我查看了许多关于 SO 的帖子,并提出了许多不同的答案——没有一个似乎完全有效,或者基于代码版本等相互矛盾。
我宁愿避开“AsEnumerable()”修复,因为据我了解,这会在应用查询之前评估所有结果......我想先运行查询,以便结果中的数据尽可能小.
有关信息:我正在查询的表可以包含 +200 万行。
我的要求:
通过实体框架在 SQL Server(紧凑型或标准型)的整数列上的“包含”函数。这将允许用户输入要搜索的数字,而无需提供完整的数字。与其他谓词一起,这在减少返回的数据量方面变得非常强大。
例如
f=>f.Id.ToString().Contains("202")<br/>
这目前失败,因为“ToString()”无法转换为实体存储命令。
或作为 T-SQL 等价物
cast(Id as varchar(9)) LIKE '%202%'
版本:
EF5
.Net 4.0
SQL Server 2008 Standard 或 SQL Compact