2012-07-17 62 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>(); 
    } 

希望它可以幫助別人:-)

相關問題