C# 是否可以在SQL Server数据库中使用Linq.IndexOf().Contains()的替代项
有人知道使用的方法吗C# 是否可以在SQL Server数据库中使用Linq.IndexOf().Contains()的替代项,c#,sql-server,linq,C#,Sql Server,Linq,有人知道使用的方法吗 .IndexOf() 在SQL Server中,而不是 .Contains() 当前我收到一个不支持的异常: 将String.IndexOf转换为SQL不支持带有StringComparison参数的版本 我想要比.Contains(ToLower(string))性能更好的东西 这就是我所尝试的: .Where(b => b.item.IndexOf(boSearchTerm, StringComparison.CurrentCultureIgnoreCase)
.IndexOf()
在SQL Server中,而不是
.Contains()
当前我收到一个不支持的异常
:
将String.IndexOf转换为SQL不支持带有StringComparison参数的版本
我想要比.Contains(ToLower(string))
性能更好的东西
这就是我所尝试的:
.Where(b => b.item.IndexOf(boSearchTerm, StringComparison.CurrentCultureIgnoreCase)!= -1)
将列的排序规则设置为CI(不区分大小写),并且包含的内容将不区分大小写Wouter Huysentruit 1分钟前在SQL查询中忽略大小写的最简单方法是将列的排序规则设置为CI(不区分大小写),这样
包含
或任何其他字符串比较都不区分大小写
如果要改进此查找,还可以在列上添加一个。无法将
StringComparison
的概念转换为SQL,因为数据库使用了更具体的概念。要进行不区分大小写的比较,请在存储(实例、数据库或列定义)中使用不区分大小写的排序规则,或在比较中强制使用特定的排序规则,请参阅。所使用的排序完全针对所用数据的国家类型
此外,在C#和任何其他语言中使用
ToLower()
都是不正确的。它将是。你到底希望它做什么?您是否有一些要复制的SQL?啊,神秘而无所不在的SQL DBI希望避免在.Cointains()中使用ToLower(),我正在寻找这样的东西:。其中(b=>b.xxxx.IndexOf(boSearchTerm,StringComparison.CurrentCultureIgnoreCase)!=-1)错误非常明确(尤其是与没有提及所涉及类型的问题进行比较时)。如果要使用string.IndexOf
,则不能使用StringComparison
,因为这不是supported@Plutonix您还可以在NoSql数据库上使用Linq。。。。