问题标签 [asp.net-web-api-odata]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-web-api - odata 服务的 url 后缀“.svc”
这可能是一个愚蠢的问题,我对 ODATA 服务的后缀有点困惑.svc
,因为我看到的大多数示例总是.svc
在根 URL 处有后缀,例如:
http://services.odata.org/V4/Northwind/Northwind.svc/
甚至在ODATA 文档示例中:
在 ASP.NET Web Api 上构建 ODATA 时,我看到后缀.svc
实际上并不是强制性的,如果我们需要在路由配置中添加它,我们可以添加它。
那么.svc
为构建 ODATA 服务而在根 URL 中添加后缀的目的是什么,或者只是约定这是 ODATA服务?
rest - OData 查询:根据列条件获取多行
我有一个包含属性字段及其相应值的表。对于一个实例,有几个属性是适用的,我想为这个实例返回一组特定的属性。
如何使用 Odata 查询以获取属性 A 和 C 及其对应值?
截至目前,我只能用$filter=endswith(Attribute, 'A')
.
mongodb - oData 的 skip() 和 top() 在过滤前拉取整个记录集
我有一个启用 oData 的 web api 功能
服务层调用基于 Mongodb 的 Repository 模式的实现。
其中 GetAll 在 Repository 层中实现,例如
其中 _collection 是 c# 驱动程序的 MongoCollection。
当我打电话时
我得到前 10 条记录,但它从数据库中提取所有记录并将我送回前 10 条。请指导我们如何从数据库中仅提取所需的集合。
odata - 从启用 oData 的 web api 获取计数 获取函数
我有一个启用了 oData 的经典 REST Web api 控制器,它具有类似的 Get 功能
我需要了解如何拨打电话以仅使用某些 url 获取记录数
我试过了
但我明白了
消息:“不支持查询参数 '$count'。”
请注意,我使用的是返回 IQueryable 集合的 MongoDb。
c# - 尝试从 MongoDB 存储库跳过和获取时溢出排序阶段缓冲数据使用
我有一个经典的支持 REST 和 ODATA 的 Web API 控制器,它调用基于 MongoDB 的存储库模式实现。
我不断得到
溢出排序阶段缓冲数据使用量 33556193 字节超出内部限制 33554432 字节异常
当我尝试跳过前 12010+ 条记录并获得前 10 名时
经过一番搜索后,我尝试在 Serial 上实现索引,例如
我的存储库实现是这样的。
来自服务层的调用是这样的
其中 SNDbContext 包含与使用 MongoClient 和连接字符串获取数据库相关的所有代码。
asp.net-web-api - 在没有 MapODataServiceRoute 的情况下使用 $inlinecount
我有一个控制器 1继承的表单 ApiController 返回某个实体的 IQueryable。
我有另一个控制器 2返回相同的东西,但继承了 ODataController 和 oData 路由配置,如下所示
当我尝试运行http://localhost:xxxx/api/Controller1 ?$inlinecount=allpages&$top=0 我得到空白 json 对象结果
当我尝试运行http://localhost:xxxx/api/Controller2 ?$inlinecount=allpages&$top=0 时,我得到了 odata.count = 100 的正确结果
我的问题是控制器 1 有什么问题?
最终我试图只得到计数。
angularjs - 在 Api Controller 和 oData Controller 与 Angular 的 ngresource 一起使用时感到困惑
我有一个调用 web api 的 Angular 应用程序。在我需要计算结果之前,它可以与 web api 控制器和 ngresource 一起正常工作。
要获得结果的计数,我需要使用 $inlinecount ,它似乎只与 oDataController 一起使用。有了 oDataControlelr,我的承诺就不起作用了。
我明白了
请指导。
asp.net-web-api-odata - 有没有办法防止将默认 ODataMediaTypeFormatters 添加到配置中?
我正在尝试自定义标准 ODataMediaTypeFormatter 的行为,并通过将它们包装在另一种扩展 MediaTypeFormatter 的类型中来做到这一点。例如
WebAPI 配置方法执行后,config.Formatters 包含 12 项(其中 7 项是包装的格式化程序)。
但是,当响应被序列化时,config.Formatters 包含 17 个项目,因为标准 OData 格式化程序已在某些时候重新添加。然后优先使用相关的标准格式化程序而不是包装版本。
有谁知道这种重新添加何时发生以及是否/如何防止它?
.net - 使用 OData $select 从相关对象中挑选字段
我将 WebAPI 2.2 与 OData V4 一起使用。
我可以使用$filter=RelatedObj/PropertyName eq 'Some Value'
基于相关对象属性值过滤实体列表。
但是,当我尝试使用相同的语法时$select
:
导致异常:
这可以解决吗?
c# - 在 asp.net web api 中支持@odata.bind(在发布期间链接到现有实体)
我很难从 WCF 数据服务迁移到 web api odata v4。我被困在以下问题上:
odata web api 似乎不支持@odata.bind。
我找到了以下链接:
https ://github.com/OData/WebApi/issues/158
有人建议ODataEntityDeserializer
像这样实现自己的派生类:
LinkedEntityCollection 是我的实体类的基类,用作字典(MyEntity : LinkedEntityCollection
实现很简单)。
在 http 配置中注册:
但是,如果您确实使用此 hack,您将失去在实体之间创建链接的能力,如本文所述:http ://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/ odata-v4/实体关系-in-odata-v4
“@odata.id”没有被解析,假设它是函数中的一个实体ODataEntityDeserializer.Read
。也许我在这里基本上遗漏了一些东西,因为我对 web api 相当陌生(config.Formatters.Clear()
似乎有点苛刻)。或者是否有任何其他解决方法来支持@odata.bind?
这个功能有没有可能在不久的将来实现?
更新
我得到了我的黑客工作。问题是我应该派生ExtendedODataDeserializerProvider
而DefaultODataDeserializerProvider
不是相应地ODataDeserializerProvider
返回反序列化器:
所以剩下的问题是:我们什么时候在 asp.net webapi odata 中获得@odata.bind 支持?