nhibernate - LINQ-to-NHibernate 中不区分大小写的Where 子句如何与Oracle 提供程序一起使用?

标签 nhibernate fluent-nhibernate oracle11g linq-to-nhibernate

例如,给定以下代码,如何使字符串比较不区分大小写?

        var query = from employeeGroup in _session.Linq<EmployeeGroup>()
                    from employee in employeeGroup.Employee
                    where employee.UserName == username
                    select employeeGroup.EmployeeGroupName;

NHibernate.Linq.SqlClient.SqlClientExtensions.Upper() 方法可能会有所帮助,但这似乎仅适用于 SQL Server。

如果我使用 System.String 类进行比较,则会收到错误:“无法在没有投影的条件上使用子查询。”。我相信这是因为 NHibernate 无法直接映射到 SQL。

最佳答案

据我所知,NHibernate Linq does not support不区分大小写的匹配。这对于不区分大小写的 SQL Server 来说不是问题,但对于 Oracle 来说显然是问题。我认为您必须为此使用 Criteria API 或 HQL。

关于nhibernate - LINQ-to-NHibernate 中不区分大小写的Where 子句如何与Oracle 提供程序一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2296405/

相关文章:

c# - 如何从多个流畅的 NHibernate session 工厂获取结果?

sql - 如何在表上选择并计算某些值的出现次数

linux - 在 Rhel 6 上安装 Oracle 11g 64 位

sql - RESTRICT_REFERENCES 和触发器

c# - 如何构建可扩展的数据模型

NHibernate 2.1 : LEFT JOIN on SubQuery with Alias (ICriteria)

performance - hibernate 水化性能

c# - QueryOver 错误 : Unrecognised method call in expression value

nHibernate Future<T>,加载顺序困惑

nhibernate - FluentNhibernate 和 NHibernate 3.2