web-dev-qa-db-de.com

config.MapODataServiceRoute-Fehler

Ich folge diesem Leitfaden derzeit -> Link zur asp.net-Website

Wie der Leitfaden sagt, habe ich alle notwendigen Pakete über die Nuget-Konsole hinzugefügt und die erforderlichen Usings zur Datei WebApIConfig hinzugefügt. . Als ich die Endpunktregistermethode hinzufügte, gab mir VS einen Fehler.

Die Methode, die ich hinzugefügt habe:

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());
    }

Der Fehler VS gab mir:

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

Ich habe die Kommentare des Leitfadens überprüft, aber dieser Fehler wird nicht erwähnt. Ich kann den Fehler auch nicht beheben. Was mache ich falsch?

14
Robin

Ich hatte gerade dieses Problem. Sehr frustrierend.

Ich löste es, indem ich dies in den Referenzen oben auf der Codepage hinzufügte

using System.Web.OData.Extensions;

Wenn Sie mit der rechten Maustaste auf die Methode klicken, wurde der Auflösungsmenüpunkt nicht angezeigt.

Durch die Neuinstallation von allem konnte ich nichts lösen.

17
Watson

MapODataServiceRoute ist in der Routes Collection verfügbar, daher wird der folgende Code verwendet

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

FÜR OData V3

  1. Installieren Sie Microsoft.AspNet. WebApi . OData
  2. using System.Web.Http.OData.Builder; und using System.Web.Http.OData.Extensions; hinzufügen
  3. verwenden Sie wie config.Routes.MapODataServiceRoute(...)

FÜR OData V4

  1. Installieren Sie Microsoft.AspNet.OData
  2. using System.Web.OData.Builder; und using System.Web.OData.Extensions; hinzufügen
  3. verwenden Sie wie config.MapODataServiceRoute(...)

Steh nicht auf WebApi Word, sie sind beide für Web-API.

6
stratovarius

MapODataServiceRoute ist eine Erweiterungsmethode. Um es zu verwenden, ist daher ein Verweis auf seinen Namespace erforderlich. Für mich wurde es durch Referenzierung behoben:

using System.Web.Http.OData.Extensions;

Wenn Sie ein Upgrade auf Microsoft.AspNet.OData 7.0.0 durchgeführt haben, lautet der Namespace, den Sie suchen:

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

Ich habe dies behoben, indem ich die Paket-Manager-Konsole geöffnet habe, das Standardprojekt auf das Projekt gesetzt habe, das die Fehlermeldung ausgegeben hat, und dann:

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