【发布时间】:2013-11-11 17:37:42
【问题描述】:
一段时间以来,我一直在寻找一种方法,通过 Entity Framework 对 Oracle 进行不区分大小写的搜索,但现在没有运气。
我已经找到了一些方法,但感觉似乎没有一种方法能很好地满足我的要求。
一种解决方案是在数据库列和参数上都使用 .ToUpper,但我已经读过可能存在一些严重的速度问题,并且通过的 SQL 可能非常混乱。
另一种解决方案是将 oracle 数据库设置为 LINGUISTIC 比较,但是当我们投入生产时可能无法进行设置。
当我尝试对 currentCulutreCaseInsentive 使用 .Equals() 重载时,我收到了一个错误。
有人知道这方面的最佳做法吗?还是返回案例密集型搜索结果的好解决方案?
谢谢
【问题讨论】:
-
您可以做的最好的事情是检查 linq 查询应用程序上的 ToUpper 是否以简单、自然的方式应用于 Oracle 查询。它应该这样做。使用 SQL Server,有许多字符串方法可以完美地转换为 T-SQL,即 StartsWith("x") 在查询中转换为 LIKE 'x%'。所以不要依赖“人们说什么”,而是“你检查什么”。
标签: c# linq oracle entity-framework