WebApi 2コントローラは、同じプロジェクト内の単一のODataコントローラと並行して動作します。私がしようとするとは 他のすべての要求は、通常のWeb APIをコントローラに向けられるべきこのODataController ODataメソッドを単一コントローラに限定する適切な方法は何ですか?
- すべての要求を
を:必要なルーティング設定を設定しようとすると、このようのOData contollerに/APIルートをマップします
class WebApiConfig
{
public static void Register(HttpConfiguration configuration)
{
configuration.Routes.MapHttpRoute("API Default", "api/{action}/{id}",
new { controller = "ApiOdata", id = RouteParameter.Optional });
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Organization>("Organizations");
configuration.Routes.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: "Api",
model: builder.GetEdmModel());
}
}
すべてのメソッド呼び出しはWeb ApiとODataコントローラの両方に問題なく動作しますが、/api/$ metadataなどのリクエストは機能しません。
私は、 "APIのデフォルトの" ルート削除 - (404を返す)動作を停止したが、/API/$メタデータがに始まるのODataコントローラ方法など/API /団体への要求を。
詳細404エラーメッセージ:
<Error>
<Message>
No HTTP resource was found that matches the request URI 'http://localhost:53576/api/Organizations'.
</Message>
<MessageDetail>
No type was found that matches the controller named 'Organizations'.
</MessageDetail>
</Error>
単一のコントローラのアクションにすべてのODataの呼び出しをマップする適切な方法は何ですか?