【发布时间】:2011-11-13 22:04:49
【问题描述】:
我在 Oracle 上使用 Fluent NHibernate,我的问题是我必须在 where 条件下对每个字符串应用 lower() 函数。我做了我自己的方言,而不是使用 nls_lower 的 Oracle 较低功能。数据库主要由 Microsoft Dynamics AX 使用,此功能可提高性能。在像这样的标准查询中一切正常:
session.QueryOver<User>()
.Where(x => x.Name.lower() == userName.lower())
.SingleOrDefualt<User>();
但是我怎样才能在引用中应用这个 lower() 函数呢?我找不到任何适合这个的东西,我希望它可以以某种方式完成。我希望在映射类中有这样的东西,但我找不到它:
References<Settings>(x => x.Settings)
.Column("SettingId").lower();
我不想立即将我的字符串转换为小写,但我确实需要生成这样的查询:
select * from User where nls_lower(Name) == nls_lower("somename");
谢谢!
【问题讨论】:
标签: oracle nhibernate mapping fluent