【发布时间】:2023-03-12 04:35:01
【问题描述】:
我可以检索所有数据,但看起来 OData 无法正常工作 我正在使用 EFCore 实体框架 Web API。 这是我对 OData 的参考https://www.youtube.com/watch?v=ZCDWUBOJ5FU
下面的更新模型
返回应该是
[
{
"name":"FakeHelmet"
},
{
"name":"OriginalHelmet"
},
{
"name":"ClassAHelmet"
}
]
这是我的代码。
控制器:
[HttpGet]
[EnableQuery]
public async Task<IActionResult> Get()
{
var models = await service.Filter();
return Ok(models);
}
服务
public async Task<IEnumerable<HelmetDto>> Filter()
{
var models = repo.GetQueryableTest<Helmet>();
return models.Select(x => SimpleMapper.Map(x, new HelmetDto()));
}
存储库
public virtual IQueryable<TEntity> GetQueryableTest<TEntity>()
where TEntity : class, IEntity
{
IQueryable<TEntity> query = context.Set<TEntity>();
return query;
}
我也在Startup.cs添加了这个
public void ConfigureServices(IServiceCollection services)
{
services.AddOData();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseMvc(routeBuilder =>
{
routeBuilder.EnableDependencyInjection();
routeBuilder.
Count().
Filter().
OrderBy().
Expand().
Select().
MaxTop(null);
});
}
这是我的模特
public class Helmet
{
public Helmet()
{
}
public int Id { get; set; }
public String Name { get; set; }
public String Description { get; set; }
public String Type { get; set; }
}
请求将是localhost:5002/api/Helmet?$select=name
我创建的OData 不起作用。希望得到答案。
这是我对 OData 的参考https://www.youtube.com/watch?v=ZCDWUBOJ5FU
返回应该是
[
{
"name":"FakeHelmet"
},
{
"name":"OriginalHelmet"
},
{
"name":"ClassAHelmet"
}
]
【问题讨论】:
-
请提供您的头盔型号
-
@metal 查看上面的更新代码
标签: c# entity-framework-core odata asp.net-core-webapi