2012-01-13 25 views
0

HasMany関係を持つ2つのクラス、たとえばChildrenというコレクションを持つParentというクラスがあります。私はNHibernateで子供を持つ親を返すだけのクエリを構築できるようにしたい。私はそれを行うために、私はこのHasMany関係を持つ必要があると思う。Fluent NHibernate - 子コレクションのロードを避ける

私が欲しいのは、次のとおりです。私は親を読み込むと、子どもが読み込まれないようにします。 LazyLoadingの種類ですが、子を読み込まないでください。

これを行う方法はありますか?

+0

これは遅延とどのように違いますか? –

答えて

3

NHibernateのコレクションのLazyLoadingはまさにあなたが求めているものです。コレクションオブジェクト自体は作成されますが、子オブジェクトのいずれもロードされません。

JSONメソッドが呼び出されるとき、子オブジェクトは遅延ロードされます。私はそれを避けたい。

3つのオプション

  1. は、セッション(Evict())から親を取り外すJSONシリアライゼーション
  2. カスタマイズ
  3. をシリアライズされたDTOにParentobjectを突出してコレクションを設定頭に浮かぶシリアライズする前にnullにする

私はオプション1を好むでしょうが、オプション2 woul dもOKです。オプション3はハックになるので、避けてください。

+0

コードはASP.NET MVCアプリケーション内で実行され、JSONとしてParentオブジェクトを返します。 JSONメソッドが呼び出されると、子オブジェクトは遅延してロードされます。私はそれを避けたい。 – igorti

+0

はい、以前はDTOを使用することも考えていましたが、このオプションを使用すると思います。助けてくれてありがとう! – igorti

関連する問題