我想了解如何檢索一個對象圖,我想在其中一個子級別的對象上放置一個過濾器。所以考慮下面的課程。我希望查詢檢索A的完整集合,以及它們完整的B集合,但對於C集合,我只想根據「time」屬性檢索特定範圍的日期元素。FluentNHibernate;如何使用QueryOver將過濾器放在子級別對象上?
我想了解這種材料: http://nhforge.org/blogs/nhibernate/archive/2009/12/17/queryover-in-nh-3-0.aspx#Associations
也許這應該是顯而易見的,但我有一個很難看到如何使用擴展這個第三級限制。所以真的很感謝一些幫助..
Class A
public List<B> Bs;
Class B
public List<C> Cs;
Class C
public DateTime time;
我到目前爲止的嘗試:但它給了例外;
IQueryOver<A, B> q = session.QueryOver<A>()
.JoinQueryOver<B>(a => a.Bs).JoinQueryOver<C>(b => b.Cs)
.Where(e => e.time.Date == System.DateTime.UtcNow.Date);
無法轉換類型的對象 'NHibernate.Criterion.QueryOver
2[A,C]' to type 'NHibernate.IQueryOver
2 [A,B]'。
「var」解決了這個問題。從例外消息我會說你只需將IQueryOver 更改爲IQueryOver 。第二個泛型可能總是你最後的JoinQueryOver。另一種方法是使用別名的連接(我的偏好)。 – Sam