В настоящее время я реализую OData с ASP.NET Zero.Я следовал инструкциям в документации, но всегда получал пустой ответ.
Это мой модуль веб-API PreInitialize
код:
public override void PreInitialize()
{
var builder = Configuration.Modules.AbpWebApiOData().ODataModelBuilder;
// Configure your entities here...
builder.EntitySet<Author>("Authors");
}
, который я создалконтроллер OData для авторов и переопределил метод Get
:
public class AuthorsController : AbpODataEntityController<Author, long>, ITransientDependency
{
private readonly IRepository<Author, long> _repository;
public AuthorsController(IRepository<Author, long> repository) : base(repository)
{
_repository = repository;
}
[EnableQuery]
[UnitOfWork(IsDisabled = true)]
public override IQueryable<Author> Get()
{
return _repository.GetAll();
}
[EnableQuery]
public override SingleResult<Author> Get([FromODataUri] long key)
{
return new SingleResult<Author>(_repository.GetAll().Where(x=>x.Id==key));
}
}
После перехода по URL http://localhost:6235/odata/Authors, я вижу только пустой массив для value
в ответе OData:
{"@odata.context":"http://localhost:6235/odata/$metadata#Jobs","value":[]}