Главное, что я хочу сделать - я хочу, чтобы мой As pNet .Core 3.1 API поддерживал Odata. Главное, что WebApi предоставляет объект Dto, который внутренне отображается на объект сущности. Я внес изменения, однако получаю ошибку 404. Я сделал следующие изменения:
publi c class Startup {publi c void Службы ConfigureServices (IServiceCollection) services.AddOData (); services.Add Mvc (options => options.EnableEndpointRouting = false);
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
IEdmModel model = GetEdmModel();
app.UseMvc(builder =>
{
builder.Select().Expand().Filter().OrderBy().MaxTop(100).Count();
builder.MapODataServiceRoute("odata", "odata", model);
});
public static IEdmModel GetEdmModel()
{
if (_edmModel == null)
{
var builder = new ODataConventionModelBuilder();
builder.EntitySet<CustomerDto>("CustomerDtos");
_edmModel = builder.GetEdmModel();
}
return _edmModel;
}
} - Изменения CustomersController
public class CustomersController : ControllerBase
{
public ICustomerRepository _customers;
public CustomersController(DbContext context)/
{
_customers = new CustomerRepository(context);
}
[HttpGet]
[EnableQuery]
public async Task<ActionResult<IEnumerable<CustomerDto>>> Get()
{
return Ok((await _customers.GetCustomers()).Select(c=>CustomerDto.MapToCustomerDto(c)));
}
}
Однако это постоянно приводит к 404 ошибкам / данным * клиентов