也可以看看LINQ to Objects 和 LINQ to SQL 查询之间的差异
我们正在使用some对我们的查询database和我们的内存中的对象.
与 linq-to-sql 进行不敏感字符串比较的最佳方法是什么?
- 它在 SQL Server 上运行速度很快
- 相同的查询表达式可以与 linq-to-objects 一起使用以获得相同的结果
Using
a.ToLowerInvariant() == b.ToLowerInvariant()
至少得到相同的结果,但据我所知,它没有在 SQL Server 上得到处理,所以可能会慢很多
a == b
SQL 数据库中的大小写敏感性由排序规则设置决定。默认情况下,我认为大多数数据库都不区分大小写,因此您应该检查是否确实需要显式处理区分大小写。
在排序规则设置中SQL_Latin1_General_CP1_CI_AS
- CI代表不区分大小写并且AS代表重音敏感。
不幸的是,Linq-to-Sql 忽略了额外的参数String.Compare()
因此您将无法显式设置要比较的区分大小写。然而,它可以与 linq to object 一起使用。
如果您使用区分大小写的排序规则,则可以使用类似的内容SqlMethods.Like(field, "string")
使用 LIKE 查询(不区分大小写),但这不会转换为 linq to 对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)