Reputation: 1258
I've got this example code...
Result = session.QueryOver<Lfee_Exc>().WhereRestrictionOn(x => x.FirstName)
.IsIn(ListOfFirstNames).List();
Is there any way to make this case insenstive or upper case x.ArNumber for my case sensitive Oracle server?
Upvotes: 6
Views: 5240
Reputation: 147
Currently using NHibernate 5.3 and this worked for me.
First make ListOfFirstNames upper case and then use ProjectionExtension Upper() from NHibernate.Criterion namespace in the query.
using NHibernate.Criterion;
var upperNames = ListOfFirstNames.Select(name => name.ToUpper()).ToArray<object>();
var result = session.QueryOver<Lfee_Exc>()
.Where(x => x.FirstName.Upper().IsIn(upperNames))
.List();
Upvotes: 0
Reputation: 52735
Convert ListOfFirstNames to upercase and then:
session.QueryOver<Lfee_Exc>()
.Where(Restrictions.In(Projections.SqlFunction(
"upper", NHibernateUtil.String,
Projections.Property<Lfee_Exc>(x => x.FirstName)),
ListOfFirstNames))
Upvotes: 11