или указанный ключ:

я есть 2 POCO, уроки и черты с int PK. У меня настроены свойства навигации, так что я могу успешно$expand вот так:

http://localhost:54321/odata/Lessons?$expand=Traitshttp://localhost:54321/odata/Traits?$expand=Lessons

Мое последнее препятствие при переносе проекта из Net 461 в .Net Core 2:Создание отношений.

В частности, когда я пытаюсь вызвать следующий метод со следующим запросом, я получаю 404.

[AcceptVerbs("POST", "PUT")]        
public async Task<IActionResult> CreateRef(
    [FromODataUri] int key, string navigationProperty, [FromBody] Uri link)
{
    ....  Do Work
}

Почтальон запрос:

http://localhost:54321/odata/Lessons(1)/Traits/$ref

тело:

 {
    "@odata.id":"http://localhost:54321/OData/traits(1)"
 }

Следующее моеStartup.Configure метод.

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    ...
    var builder = ConfigureOdataBuilder(app);

    app.UseMvc(routeBuilder =>
    {
        routeBuilder.Select().Expand().Filter().OrderBy().MaxTop(null).Count();
        routeBuilder.MapODataServiceRoute("ODataRoute", "odata", builder.GetEdmModel());

        // Work-around for #1175
        routeBuilder.EnableDependencyInjection();
        routeBuilder.MapRoute(name: "default", template: "{controller=Home}/{action=Index}/{id?}"); // enable mvc controllers
    });            
}

private ODataConventionModelBuilder ConfigureOdataBuilder(IApplicationBuilder app)
{
    var builder = new ODataConventionModelBuilder(app.ApplicationServices);

    builder.EntitySet<Lessons>(nameof(Lessons));
    builder.EntitySet<Traits>(nameof(Traits));       

    return builder;
}

Вопрос: Как мне достичь этого метода контроллера?

Вещи, которые я пробовал,

Переименуйте CreateRef в CreateLink и CreateПерешел по каждой ссылке в этих Git Issues,Вот а такжеВот.Следить за публикациямиМаршрутизация атрибутов спекуляцияПробное решение на основе этого DeleteRef в этомWeb Api oData v4 $ ref 404 или ошибка сервераПопробовал явно определить маршрут с[ODataRoute("Lessons({key})/{navigationProperty}")]

Ответы на вопрос(0)

Ваш ответ на вопрос