4
我嘗試加載一個樹時出現問題,這是我的情況,我有一個與n級關聯的實體(Hierarchic);問題是,我可以使用ICriteria或HQL熱切加載整棵樹嗎?急於在NHibernate中加載一棵樹
在此先感謝您的幫助。 Ariel
我嘗試加載一個樹時出現問題,這是我的情況,我有一個與n級關聯的實體(Hierarchic);問題是,我可以使用ICriteria或HQL熱切加載整棵樹嗎?急於在NHibernate中加載一棵樹
在此先感謝您的幫助。 Ariel
是的...只是設置正確的fetchmode。
我會在一分鐘內包含示例。
例採取from here =>
IList cats = sess.CreateCriteria(typeof(Cat))
.Add(Expression.Like("Name", "Fritz%"))
.SetFetchMode("Mate", FetchMode.Eager)
.SetFetchMode("Kittens", FetchMode.Eager)
.List();
您可以指定兒童的渴望負載孩子太=>
.SetFetchMode("Kittens.BornOn", FetchMode.Eager)
在你使用LINQ to NHibernate的情況下,使用擴展方法=>
var feedItemQuery = from ad in session.Linq<FeedItem>().Expand("Ads")
where ad.Id == Id
select ad;
而且我會推薦使用helper方法來創建從lambda表達式中傳遞的字符串。
很可能有可能告訴標準加載整個樹。但我不知道這一點,我更喜歡指定我需要什麼(似乎加載一切都很危險)。
this有幫助嗎?
我知道我可以使用FetchMode加載與實體相關的集合,但我想加載整個樹,而不僅僅是下一個級別。 用你的方法,我會做: .SetFetchMode( 「孩子」,FetchMode.JOIN)語句 .SetFetchMode( 「Children.Children」,FetchMode.JOIN)語句 .SetFetchMode( 「Children.Children.Children」 FetchMode.Join)等 – Argons 2010-01-30 12:58:14