有没有办法以不区分大小写的方式使用Expression.In()?

时间:2010-01-26 17:40:41

标签: c# nhibernate orm

我使用Expression.In()作为使用NHibernate的标准的一部分,对于我的生活,我找不到任何方法让它忽略大小写。有谁知道如何做到这一点,或者我将不得不以不同的方式做到这一点?

不是说它可能很重要,但这里是我如何使用Expression.In()

的示例
ICriteria criteria = Session.CreateCriteria(typeof (Result))
    .Add(Expression.In("targetName", {'target1', 'target2'}));

1 个答案:

答案 0 :(得分:1)

我认为每个数据库服务器的案例处理都不同。例如,默认情况下,mssql server不区分大小写。因此,要么在数据库中检查该设置,要么在比较之前将所有字符串转换为更高或更低。

.Add(Restrictions.In(
    Projections.SqlFunction("lower", NHibernateUtil.String, Projections.Property("targetName")), 
    new object[] {"target1", "target2"} ))