我在Entity Framework上遇到了一些令人抓狂的问题,但我就是找不到解决方案。
我想要做的是,为正在运行的搜索功能比较字符串。它基本上是这样的: collection.Where(c => c.Name.Contains(searchTerm));
其中searchTerm是由用户传递的字符串。
无论我去哪里寻找答案,都是以下两种方法:
都使用toUpper()函数将两个字符串进行更改,或者
将排序规则设置为大小写不敏感的排序规则。
然而这两种方法都不能解决我的问题。以下是一个没有答案的类似问题:Entity Framework - case insensitive Contains?
如果采用第一种方法将导致获取数据库中的每一行,然后执行toUpper()函数来查看是否匹配。从性能的角度来看,这是不能接受的。
第二种方法似乎更有可能是有效的解决方案,但由于某种原因却无法工作。我有两个数据库。一个是本地的,一个是远程的。远程MSSQL数据库的排序规则是“Finnish_Swedish_CI_AS”,这意味着它不区分大小写?本地数据库是自动生成的本地DB,属性“大小写敏感”设置为False。
无论我使用这两个数据库中的哪一个,用户仍然始终是大小写敏感的。
请问有人可以解释一下这是为什么吗,这样我就可以继续我的悲惨生活了吗?
谢谢, Robin Dorbell
ICollection<T>
。 - Robin Dorbell