Nhibernate查询案例不敏感IsIn

gt1*_*124 6 c# nhibernate queryover

我有这个示例代码...

Result = session.QueryOver<Lfee_Exc>().WhereRestrictionOn(x => x.FirstName)
.IsIn(ListOfFirstNames).List();
Run Code Online (Sandbox Code Playgroud)

对于我的区分大小写的Oracle服务器,有没有办法让这个不区分大小写或大写x.ArNumber?

Die*_*hon 10

将ListOfFirstNames转换为upercase然后:

session.QueryOver<Lfee_Exc>()
    .Where(Restrictions.In(Projections.SqlFunction(
                              "upper", NHibernateUtil.String,
                               Projections.Property<Lfee_Exc>(x => x.FirstName)),
                           ListOfFirstNames))
Run Code Online (Sandbox Code Playgroud)

  • @ gt124:它们根据方言而有所不同,标准的是在https://nhibernate.svn.sourceforge.net/svnroot/nhibernate/trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs中,在https中寻找特定的方言://nhibernate.svn.sourceforge.net/svnroot/nhibernate/trunk/nhibernate/src/NHibernate/Dialect(记住继承链:MsSql2008继承自MsSql2005等) (2认同)