или указанный ключ:
я есть 2 POCO, уроки и черты с int PK. У меня настроены свойства навигации, так что я могу успешно$expand
вот так:
http://localhost:54321/odata/Lessons?$expand=Traits
http://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}")]