私は本質的に再帰的なクラスモデルを持っています。 テンプレートがソケットは私が通常で終わる多くのテンプレートオブジェクト WCF Data Servicesを使用して完全なオブジェクトグラフを返す方法は?
を受け入れ
- :として簡潔にするために、私はそれを説明しますオブジェクトグラフは次のようになります。
Root Template |--> Sockets |--> Socket S1 | |--> Templates | |--> Template T1 | |--> Template T2 | |--> Sockets | |--> Socket S1.1 |--> Socket S2 |--> Templates |--> Template T2 <-- it's valid to reuse templates |--> Template T3 etc
オブジェクトグラフ全体をWCF Data Services経由でワンショットで返したいと考えています。
私は完全なグラフを構築し、私のDataServiceにカスタムメソッドを追加しました:
[WebGet] public IEnumerable<Template> GetFullyExpandedTemplate(Guid templateId) { var result = _templateRepo.GetFullyExpandedTemplate(a => a.Id == templateId); return new List<Template>() { result }; }
結果は間違いなく検証(完全に実装された状態である。しかし、私は次のように参照する場合:。
http://localhost/MySite/MyDataService.svc/GetFullyExpandedAggregate?id=guid'353934DD-916E-43EC-9CAE-EAB8FA894EBA'
私はルートテンプレートオブジェクトのみを表示します。グラフ全体を返しません。
で最もクリーンなアイデアこれを実現する方法はありますか?
再帰的であるため、クライアントはオブジェクトグラフの深さがどれだけ深いか分かりません。この特定のアプリケーションのコンテキストでは、オブジェクトグラフを一度に戻すことが最も効果的な方法と思われます。 –