Tag: asp.net web api odata

启动时出现OData v4错误:找不到该段’Whatever’的资源

我正在构建我的新v4服务,一切顺利,直到我为新模型/实体添加了一个新控制器,并在启动网站进行测试运行时出现此错误。 控制器似乎正确编码,就像其他控制器一样。 控制器“CustomersOData”中操作“GetFeed”上的路径模板“Customers”不是有效的OData路径模板。 未找到“客户”细分的资源。 这对地球意味着什么?

如何正确地将OData与ASP.net Core集成

我正在尝试使用OData和EntityFramework创建一个带有“简单”web api的新ASP.NET Core项目。 我之前使用OData与旧版本的ASP.NET。 我已经设置了一个只有一个简单的get函数的控制器。 我已经设法使用基本的OData命令作为filter和顶部,但我无法使扩展命令工作。 我想这是因为我无法弄清楚如何在Startup.cs中设置它。 我尝试了很多东西,包括跟随Github的一些odata样本: https://github.com/OData/WebApi/tree/vNext/vNext/samples/ODataSample.Web https://github.com/bigfont/WebApi/tree/master/vNext/samples/ODataSample.Web 在我的启动文件中,我尝试从Service类中排除一些根本没有效果的属性。 所以问题可能在于我使用IDataService接口的方式。 (ApplicationContext像样本一样实现它) 要清楚我正在使用完整的.NET Framework创建一个ASP.NET Core web api,而不仅仅是.Core框架。 我当前的代码是两个样本中最好/最差的混合,并且我可以过滤WebAPI,但不能让它扩展或隐藏属性。 任何人都可以看到我缺少的东西og有一个工作的ASP.NET Odata样本。 我是startup.cs中整个设置的新手? 猜猜我正在找一个做过这项工作的人。 调节器 [EnableQuery] [Route(“odata/Services”)] public class ServicesController : Controller { private IGenericRepository _serviceRepo; private IUnitOfWork _unitOfWork; public ServicesController(IGenericRepository serviceRepo, IUnitOfWork unitOfWork) { _serviceRepo = serviceRepo; _unitOfWork = unitOfWork; } [HttpGet] public IQueryable Get() […]

使用$ expand请求控制返回的内容

因此,使用ODataController ,您可以控制返回的内容,如果有人执行/odata/Foos(42)/Bars ,因为您将在FoosController上调用, FoosController所示: public IQueryable GetBars([FromODataUri] int key) { } 但是如果你想控制什么时候有什么东西/odata/Foos?$expand=Bars ? 你怎么处理那件事呢? 它会触发此方法: public IQueryable GetFoos() { } 而且我认为它只会在您返回的IQueryable上执行.Include(“Bars”) ,所以…我如何获得更多控制权? 特别是,我如何以OData不破坏的方式进行操作(例如$ select,$ orderby,$ top等继续工作。)