Инъекция OData v4 в MVC 6

в настоящее время я надеюсь, что кто-то авантюрный, возможно, справился с этим препятствием, как текущие сборки для MVC 6 работает на ASP.Net v5.0 нет никаких сервисов, которые я могу найти для загрузки OData в конвейер. Я вызываю приложение.UseMvc () и может создавать маршрутизацию соглашений, но не может определить какой-либо объект HttpConfiguration в новом процессе. Я действительно надеялся работать с комбинированным MVC / WebApi в MVC 6, но OData v4-это игровой чейнджер.

Если кто имел опыт и могли бы указать мне в правильном направлении, пожалуйста, сообщите:

это может не очень помочь, но вот мой класс запуска:

using System;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Http;
using Microsoft.Data.OData;
// Won't work, but needs using System.Web.OData.Builder;
using Microsoft.Framework.DependencyInjection;

namespace bmiAPI
{
    public class Startup
    {
        public void Configure(IApplicationBuilder app)
        {

            app.UseWelcomePage();
            app.UseMvc();

        }

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();

        }
    }
}

1 ответов


ASP.NET MVC 6 пока не поддерживает OData. Для размещения OData в ASP.NET в настоящее время я бы рекомендовал использовать ASP.NET Web API 2.x, который поддерживает как OData v3, так и OData v4.

Если вы хотите использовать OData в ASP.NET 5 приложение, вы можете использовать мост OWIN для размещения веб-API 2.x on ASP.NET 5, но он все равно не будет использовать MVC 6.

у вас будет такой код (на основе вышеупомянутого моста):

public void Configure(IApplicationBuilder app)
{
    // Use OWIN bridge to map between ASP.NET 5 and Katana / OWIN
    app.UseAppBuilder(appBuilder =>
    {
        // Some components will have dependencies that you need to populate in the IAppBuilder.Properties.
        // Here's one example that maps the data protection infrastructure.
        appBuilder.SetDataProtectionProvider(app);


        // Configure Web API for self-host. 
        HttpConfiguration config = new HttpConfiguration(); 
        config.Routes.MapHttpRoute( 
            name: "DefaultApi", 
            routeTemplate: "api/{controller}/{id}", 
            defaults: new { id = RouteParameter.Optional } 
        );

        appBuilder.UseWebApi(config);
    };
}