2012-07-17 70 views
2

我是相当新的NHibernate的,所以这个应该是很容易:与NHibernate使用如何查询相关的对象包含

public IList<Ad> Search(string query) 
    { 
     return unitOfWork.Session 
      .QueryOver<Ad>() 
      .JoinQueryOver<AdProperty>(x => x.Properties) 
       .Where(ad => ad.Value.Contains(query)) 
      .List(); 
    } 

我所试图做的,当然,是搜索广告, AdProperty包含某个字符串,并作为结果返回相应的Ad对象。 (我知道这会不会导致最佳查询,但现在这个就足够了)

问题

我不能使用。载,因为它是无法识别的。那么,如何正确使用NHibernate呢?

我看了一下NHibernate query looking for the related object's related object,但我无法得到那个功能。

注意

我使用NHibernate 3.0+

回答

1

经过一番摆弄多,我的例子(上面提到的)工作。我会留下我的解决方案,以备将来参考。

public IList<Ad> Search(string query) 
    { 
     return unitOfWork.Session 
      .CreateCriteria<Ad>() 
      .CreateAlias("Properties", "props") 
      .Add(Expression.InsensitiveLike("props.Value", query, MatchMode.Anywhere)) 
      .List<Ad>(); 
    } 

希望它可以帮助别人:-)

相关问题