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

NHibernate-QBE和EnableLike()

  •  2
  • emirc  · 技术社区  · 17 年前

    我在NHibernate中使用QBE时遇到问题。

    下面是一个示例代码:

    Person person = new Person();
    person.FirstName = "e";
    using (ISession session = SessionFactory.CreateSession())
    {
      Example example =    Example.Create(person).ExcludeProperty("DateOfBirth").EnableLike().IgnoreCase();
      IList<Person> people = session.CreateCriteria<Person>().Add(example).List<Person>();
      return people;
    }
    

    person.FirstName = "e%";
    

    通过此修改,查询将返回所需的结果。 “EnableLike”不应该处理这个问题吗?

    我做错了什么?

    1 回复  |  直到 17 年前
        1
  •  2
  •   Neodrabi    16 年前

    我不是专家,但您似乎需要在enablelike()中设置匹配模式,就像:

    示例.Create(person).ExcludeProperty(“出生日期”) .EnableLike(NHibernate.Expression.MatchMode.Start) .IgnoreCase();

    匹配模式可以是:开始、结束、精确和任意位置

    希望这有帮助