私は以下の方法でクライアントサーバーアプリを持っています。オプションで、protobuf-netまたはNHibernateのいずれかのオブジェクトであるフィールドを取得できますか?
は、ドメイン内のいくつかのクラスは、子供たちのコレクションを持っています。子供の中には親を参照するものもあります。
問題は、サーバーに子オブジェクトの要求が行われたときに、他のすべての子が応答と共に返されることです。多くの状況では、子供の親オブジェクトにアクセスすることは非常に役立ちます。親のために別のリクエストをしなくても、より多くの往復が必要になります。
通常Nhibernates遅延ロードは、このの世話をするだろうがいるProtobufネット(またはその他のシリアライゼーション)との相互作用は、すべてのフィールドをシリアル化するアクセスされることを意味します。クライアントはデータベースに直接アクセスできません。
protobuf-netまたはNhibernateのオブジェクト参照深度を、2つ以上のオブジェクトを深く読み込まないというフラグをサーバーに要求できるように制限することは可能ですか?
注文商品 - 配送情報。
注文のリクエストで1つの制限は、配信情報を読み込まないことを意味します。 0の制限は、注文アイテムをロードしないことを意味します。
代替として、参照がロードされるのをオプションで停止することができます(制限は0または無制限です)。これは、より制限的ですが実装可能性が高い可能性があります。
ありがとうMarc、私はIMOで私の契約をAddType、AddField、AddSubTypeを直接呼び出すという賢明な方法を定義しています。 AddFieldの戻り値に対してメソッドSetSpecifiedが見つかりましたが、メソッドが与えられたときに同じ結果を返します。 –
@James - はい、それは同じことです。名前付けは、サポートされている '* Specified' BCLパターンと、このパターンが(ShouldSerialize *ではなく)双方向の使用を可能にするという事実によるものです。しかし、同じこと。 –