2016-12-30 4 views
0

エンティティセットが名前空間にグループ化されたOData v4サービスを実装したいと考えています。 namespace1とnamespace2が別々のODataサービスとして表現されるODataのクロスサービス参照

https://www.mycompany.com/namespace1/entitySetA 
https://www.mycompany.com/namespace2/entitySetB 

:ODataのURIのがserviceEndpoint/entitySetNameで構成されており、entitySetNameはスラッシュを含めることはできません、私はそれぞれの名前空間は別のサービス、すなわちとして表現されて実装したいと思います。これは、entitySetAからentitySetBにNavigationPropertyを追加する必要があるまで、すべて正常に機能します。あるサービスのエンティティがナビゲーションプロパティのエンティティを参照できるかどうかこれがサービスレベルでどのように実装されているのか分かりますか?

ありがとうございます!

答えて

0

要するに、OData v4では、他のサービスからのエンティティを参照するエンティティを持つことはできません。

私のアプリケーションに必要な名前空間を実現するために、それらの名前空間を表すダミーシングルトンエンティティを作成しました。上記の例では、私のサービスはエンティティセットを公開するのではなく、namespace1(Navigation Property entitySetAを持つ)とnamespace2(Navigation Property entitySetBを持つ)という2つのシングルトンを公開します。エンティティデータモデルを少し乱用しますが、直接のHTTPコールで消費するときもクライアントによっても、ユーザーエクスペリエンスはかなり良いです。

1

これは、特定のエンティティを取得するための呼び出しがあるときに、それぞれのEdmプロバイダを呼び出して、要求されたエンティティを返すように、Edmプロバイダを実装することで実現できます。 ナビゲーションプロパティの場合も同じです。

this documentに従うと、クロスサービスのシナリオをサポートできます。