私は次のようにクライアントサーバーアプリを持っています。
ドメイン内の一部のクラスには、子のコレクションがあります。一部の子供は親を参照します。
の問題は、子オブジェクトの要求がサーバーに行われると、他のすべての子が応答とともに返されることです。多くの場合、子から親オブジェクトにアクセスできると非常に役立ちます。親に対して個別のリクエストを行う必要はありません。これにより、ラウンドトリップが増えるためです。
通常、Nhibernates Lazy-Loadingがこれを処理しますが、protobuf-net(またはその他のシリアル化)との相互作用は、すべてのフィールドにアクセスしてシリアル化することを意味します。クライアントはデータベースに直接アクセスできません。
サーバーへのリクエストに2つ以上のオブジェクトをロードしないことを示すフラグを含めることができるように、protobuf-netまたはNhibernateのいずれかでオブジェクト参照の深さを制限することは可能ですか?
例:注文-注文アイテム-配送情報。
注文のリクエストが1つに制限されている場合は、配信情報を読み込まないことを意味します。0の制限は、注文アイテムをロードしないことを意味します。
あるいは、オプションで参照のロードを停止することもできます(制限は0または無制限のいずれかです)。これはより制限的ですが、実装するのがより実行可能である可能性があります。