例如,给定以下代码,如何使字符串比较不区分大小写?
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/