web-dev-qa-db-ja.com

config.MapODataServiceRouteエラー

私は現在このガイドに従っています-> asp.net Webサイトへのリンク

ガイドにあるように、必要なすべてのパッケージをnugetコンソールから追加し、必要な用途をWebApIConfigファイルに追加しました。 。しかし、エンドポイント登録メソッドを追加すると、VSでエラーが発生しました。

私が追加した方法:

public static void Register(HttpConfiguration config)
    {
        // New code:
        ODataModelBuilder builder = new ODataConventionModelBuilder();
        builder.EntitySet<Product>("Products");
        config.MapODataServiceRoute(
            routeName: "ODataRoute",
            routePrefix: null,
            model: builder.GetEdmModel());
    }

エラーVSは私に与えました:

Error   1   'System.Web.Http.HttpConfiguration' does not contain a definition for 'MapODataServiceRoute' and no extension method 'MapODataServiceRoute' accepting a first argument of type 'System.Web.Http.HttpConfiguration' could be found (are you missing a using directive or an Assembly reference?) C:\Users\rvcamp\Desktop\odataTest\odataTest\App_Start\WebApiConfig.cs   29  20  odataTest

ガイドのコメントを確認しましたが、このエラーは記載されておらず、エラーも解決できません。私は何が間違っているのですか?

15
Robin

私はちょうどこの問題を抱えていました。非常にイライラします。

コードページの上部にあるリファレンスにこれを追加することで解決しました

using System.Web.OData.Extensions;

メソッドを右クリックしても、解決メニュー項目は表示されませんでした。

すべてを再インストールしても、何も解決しませんでした。

18
Watson

MapODataServiceRouteはRoutes Collectionで使用できるため、以下のコードで使用できます

config.Routes.MapODataServiceRoute(
"odata",
 null, 
GetEdmModel(), 
new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer));
10
BashaG

OData V3の場合

  1. Microsoft.AspNetをインストールします。WebApi。OData
  2. _using System.Web.Http.OData.Builder;_と_using System.Web.Http.OData.Extensions;_を追加します
  3. config.Routes.MapODataServiceRoute(...)のように使用します

OData V4の場合

  1. Microsoft.AspNet.ODataをインストールします
  2. _using System.Web.OData.Builder;_と_using System.Web.OData.Extensions;_を追加します
  3. config.MapODataServiceRoute(...)のように使用します

WebApi Wordで立ち往生しないでください、どちらもWeb API用です。

8
stratovarius

Microsoft.AspNet.OData 7.0.0にアップグレードした場合、探している名前空間は次のとおりです。

using Microsoft.AspNet.OData.Extensions;
5
Amir Popovich

MapODataServiceRouteは拡張メソッドです。したがって、それを使用するには、その名前空間への参照が必要です。私にとっては、以下を参照することで修正されました。

using System.Web.Http.OData.Extensions;

パッケージマネージャーコンソールを開き、デフォルトのプロジェクトをエラーメッセージが表示されたプロジェクトに設定して、これを修正しました。

Install-Package Microsoft.AspNet.WebApi.OData
0
johanv