質問

iはクライアント、サーバー、dbを取得しました 流なnhibernateでサーバーにマップされたdb。 ここまでは順調ですね クライアントはwcfを使用してサーバーと通信します。 クライアント側で遅延読み込みを実装したい。

解決策はありますか?

役に立ちましたか?

解決

AFAIKには解決策がありません。遅延読み込みは、nhibernateの実装に非常に本質的なプロキシメカニズムで動作します。 Nhibernate.Remote というプロジェクトが1つありましたが、これは廃止されました。 nhibernateはwcfで動作しますが、遅延読み込みはありません。

他のヒント

WCFの性質は、送信前にシェーピングされるデータを学習することです。つまり、既に取得されて何らかのデータ契約に入れられています。

最初のサービス呼び出しでパラメータを指定して、子プロパティに値を設定するかどうかを示すことができますが、どこまで行くかは常に注意が必要です。

それが実現できないことに気付いたとき、投影と結果変換を使用することにしました。

問題なく動作します。

遅延読み込みコレクションを読み込む必要がある場合は、サーバー上でそれを繰り返し、クライアントに送り返します。 部分的に選択されたオブジェクトを更新する場合、dbから彼を再選択し、完全なデータエンティティを更新する必要があります。

しかし、それは価値がある

悲観的で申し訳ありませんが、NHCFをWCF経由の遅延読み込みで動作させることは動作しません

以下のコードを使用すると、WCFは遅延読み込みで動作します:

var proxy = myObj as INHibernateProxy;
myObj = (myObj)proxy.HibernateLazyInitializer.GetImplementation();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top