代码之家  ›  专栏  ›  技术社区  ›  mockobject

有没有一种使用expression.in()的方法不区分大小写?

  •  1
  • mockobject  · 技术社区  · 15 年前

    我使用expression.in()作为使用nhibernate的条件的一部分,在我的生活中,我找不到任何方法使它忽略大小写。有人知道这是怎么做到的吗?还是我必须用另一种方式来做到?

    这可能并不重要,但下面是我如何使用表达式的示例。

    ICriteria criteria = Session.CreateCriteria(typeof (Result))
        .Add(Expression.In("targetName", {'target1', 'target2'}));
    
    1 回复  |  直到 15 年前
        1
  •  1
  •   dotjoe    15 年前

    我认为每个数据库服务器的案例处理方式不同。例如,默认情况下,MSSQL服务器不区分大小写。所以,在比较之前,要么检查DB上的设置,要么将所有字符串转换为上限或下限。

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