Возможно ли достичь следующего маршрута с Asp.Net Core 3.1 и Microsoft.AspNetCore.OData версии 7.3.0:
/ParentEntity({id})/Children(OnlyActive={onlyActive})
Чего я добился:
Метод контроллера:
[HttpGet]
[ODataRoute("ParentEntity({id})/Children")]
public async Task<IActionResult> Children([FromODataUri] string id)
{
// some data fetching operations.
}
Со следующей конфигурацией модели:
builder.EntityType<ParentEntity>().Function("Children")
.ReturnsCollectionFromEntitySet<ChildEntity>("ChildEntity");
Работает нормально, и я могу получить параметр id в методе Children.
Но когда я пытаюсь сделать что-то вроде:
[HttpGet]
[ODataRoute("ParentEntity({id})/Children(OnlyActive={onlyActive})")]
public async Task<IActionResult> Children([FromODataUri] string id, [FromODataUri] bool onlyActive)
{
// some data fetching operations.
}
С конфигурацией модели:
FunctionConfiguration getFunc = builder.EntityType<ParentEntity>().Function("Children")
.ReturnsCollectionFromEntitySet<ChildEntity>("ChildEntity");
getFunc.Parameter<bool>("OnlyActive");
Я получаю сообщение об ошибке:
Microsoft.OData.ODataException: «Плохой запрос - ошибка в синтаксисе запроса»
Можно ли таким образом использовать функции Odata? Или попробовать другой подход?