ツリーをロードしようとすると問題が発生します。これが私の場合です。n レベルのエンティティ (階層型) が関連付けられています。問題は、ICriteria または HQL を使用してツリー全体を積極的にロードできるかどうかです。
助けてくれてありがとう。アリエル
ツリーをロードしようとすると問題が発生します。これが私の場合です。n レベルのエンティティ (階層型) が関連付けられています。問題は、ICriteria または HQL を使用してツリー全体を積極的にロードできるかどうかです。
助けてくれてありがとう。アリエル
はい...正しいfetchmodeを設定するだけです。
すぐに例を含めます。
ここからの例=>
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 を使用している場合は、Expand メソッドを使用します =>
var feedItemQuery = from ad in session.Linq<FeedItem>().Expand("Ads")
where ad.Id == Id
select ad;
そして、ラムダ式で渡された文字列を作成するヘルパー メソッドを使用することをお勧めします。
ツリー全体をロードするように Criteria に指示できる可能性が非常に高いです。しかし、私はそれについて気づいていません。必要なものを正確に指定することを好みます(すべてをロードするのは危険に思えます)。
これは役に立ちますか?