NHibernate Expression.Like标准在两个领域

我有一个Nhibernate对象,它具有属性Firstname和Surname,并且我希望能够在两个字段(Firstname +“”+ Surname)上查询; 例如,如果搜索项是“John Doe”,那么当John和Doe处于独立字段时,这将匹配。

我怎样才能做到这一点? 谢谢!


所以我最终与:

.Add(Restrictions.Like(Projections.SqlFunction("concat",
        NHibernateUtil.String,
        Projections.Property("Firstname"),
        Projections.Constant(" "),
        Projections.Property("Surname")),
    searchString, MatchMode.Anywhere))

这似乎工作,因为我需要它。


string firstName = "John";
string lastName = "Doe";

例如,使用LINQ:

Session.Query<User>()
       .Where(u => u.FirstName == firstName || u.Surname == lastName)
       .ToList();

你可以用QueryOver来完成它,它看起来几乎相同:

Session.QueryOver<User>()
       .Where(u => u.FirstName == firstName || u.Surname == lastName)
       .List();

更新:我错过了这个问题的重点。

那这个呢:

var name = "John Doe";
Session.Query<User>()
       .Where(u => name.Contains(u.FirstName) || name.Contains(u.Surname))
       .ToList();
链接地址: http://www.djcxy.com/p/37087.html

上一篇: NHibernate Expression.Like Criteria on Two Fields

下一篇: Hibernate Criteria One to Many issues