我使用Expression.In()作为使用NHibernate的标准的一部分,对于我的生活,我找不到任何方法让它忽略大小写。有谁知道如何做到这一点,或者我将不得不以不同的方式做到这一点?
不是说它可能很重要,但这里是我如何使用Expression.In()
的示例ICriteria criteria = Session.CreateCriteria(typeof (Result))
.Add(Expression.In("targetName", {'target1', 'target2'}));
答案 0 :(得分:1)
我认为每个数据库服务器的案例处理都不同。例如,默认情况下,mssql server不区分大小写。因此,要么在数据库中检查该设置,要么在比较之前将所有字符串转换为更高或更低。
.Add(Restrictions.In(
Projections.SqlFunction("lower", NHibernateUtil.String, Projections.Property("targetName")),
new object[] {"target1", "target2"} ))