Я начал работать с OData и не могу понять, как работают маршрутизация и пути.
Имею контроллер:
[Route("odata/[controller]")]
public class TestController : ODataController
{
public TestController(IRepository<ETest> testContext)
{
_testContext = testContext;
}
[HttpGet]
[EnableQuery()]
public IQueryable Get()
{
return _testContext.GetData();
}
[HttpGet]
[EnableQuery()]
public async Task<ETtest> Get([FromQuery] DateTime key)
{
return await _testContext.Get(key);
}
private IRepository<Etest> _testContext { get; }
}
У меня проблемы при попытке доступа к контроллеру вызовов с путями :
http://localhost:60286/odata/test?&key=2019-12-13T02:50:06.210553
http://localhost:60286/odata/test?$filter=mtts gt 2019-12-13T00:00:00Z&key=2019-12-13T02:50:06.210553
У меня go ошибка:
Microsoft.AspNetCore.Mvc.Infrastructure.AmbiguousActionException: Multiple actions matched. The following actions matched route data and had all constraints satisfied..
Как решить проблему с маршрутизацией?
Можно ли переименовать метод Получить на другое имя ?
Я заглянул в ресурсы:
https://devblogs.microsoft.com/odata/experimenting-with-odata-in-asp-net-core-3-1/
https://docs.microsoft.com/en-us/odata/webapi/built-in-routing-conventions
Спасибо за помощь.