如何在ASP.NET 5中注册OData

Aym*_*man 10 odata-v4 asp.net-core

我有一个ASP.NET 5应用程序,我想用它来使用OData v4.

这是我尝试过的:

1.我导入了以下nuget包:

"Microsoft.AspNet.WebApi": "5.2.3",
"Microsoft.AspNet.OData": "5.7.0",
"Microsoft.AspNet.Hosting": "1.0.0-rc1-final"
Run Code Online (Sandbox Code Playgroud)

2.在Startup.Configure方法中对此进行了调整

GlobalConfiguration.Configure(ConfigOData);
Run Code Online (Sandbox Code Playgroud)

3.最后这是OData配置

private static void ConfigOData(HttpConfiguration config)
{
    ODataConventionModelBuilder builder = new ODataConventionModelBuilder();

    var EDM = builder.GetEdmModel();

    //OData v4.0
    config.MapODataServiceRoute("odata", "odata", EDM,
        new DefaultODataPathHandler(),
        conventions,
        new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer));
}
Run Code Online (Sandbox Code Playgroud)

现在,ODC调用正在由MVC的路由配置处理(很可能是因为我没有正确地向ASP.NET 5注册OData).

请有人帮我这个吗?

Sha*_*tin 6

以下是我们如何使用ASP.NET Core RC2 OData配置它.

namespace ODataSample
{
    using Microsoft.AspNetCore.OData.Extensions;
    using Microsoft.AspNetCore.Builder;
    using Microsoft.Extensions.DependencyInjection;
    using ODataSample.Models;

    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
            services.AddOData<ISampleService>();
        }

        public void Configure(IApplicationBuilder app)
        {
            app.UseOData("odata");
            app.UseMvc();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是您自己尝试的方法.您需要安装.NET Core SDK.

git clone git@github.com:bigfont/WebApi.git

cd WebApi\vNext\src\Microsoft.AspNetCore.OData
dotnet restore

cd ..\..\samples\ODataSample.BigFont\
dotnet restore
dotnet run
Run Code Online (Sandbox Code Playgroud)

这是结果 http://localhost:5000/odata

结果

链接