2

私のエンティティのリストには、「コンテナ」と呼ばれるものが含まれています。(私の会社はコンテナを多く扱っており、かなり「確立された」用語です。)

そのため、それらのデータをモデル化したとき、自然にそれらをコンテナーと呼びました。

つまり、 というクラスがありContainerます。

Web API OData 用にすべてのコントローラーを接続しましたが、それを使用してクライアントをコンパイルしようとすると、エラーが発生します。(私は WCF Data Service Client nuget パッケージを使用しています。)

エラーは、エンティティのContainer部分クラスと、ルート レベルのすべてのコレクションを保持する別の部分クラス ( とも呼ばれる) があるためContainerです。(注: OData の WCF Data Services バージョンを介して同じエンティティを実行しているサービスでは、このエラーは発生しません。)

だから、私の質問は:エンティティを呼び出しContainerて Web Api OData 経由で公開する方法はありますか? (クライアントのコンパイル時エラーは発生しません)。

注: これを再現しようとすると、「Container」と呼ばれるエンティティがルート項目でもある何かに関連付けられている場合にエラーが発生します (したがって、「Cntainer」と呼ばれる DataServiceContext クラスに含まれます。たとえば、コンテナが可能な ContainerTypes のリストがあり、ContainerTypes のルート リストがある場合、部分クラスがマージを試み、競合が発生します。

4

1 に答える 1

2

ODataModelBuilder (すべてのエンティティ セットを定義するために使用する) には ContainerName プロパティがあることがわかります。

デフォルトの「コンテナ」とは別の名前を付ける設定

ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.ContainerName = "YourCustomContainerNameHere";
于 2014-07-25T23:57:39.040 に答える