问题标签 [odatalib]

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.

0 投票
1 回答
503 浏览

odata - Microsoft.Data.OData.ODataMessageWriter 使用请求还是响应?

Microsoft.Data.OData.dll,v5.6.1.0 中的类ODataMessageWriter接受构造函数,该构造函数IODataRequestMessage requestMessageIODataResponseMessage responseMessage. 问题是何时使用其中一种。

我正在使用 ODataMessageWriter 手动实现 OData 服务,我想根据请求中的标头来正确获取响应的标头...但似乎需要大量手动编码才能获取所有标头对(接受、内容类型、DataServiceVersion 等)...我错过了什么吗?

0 投票
1 回答
162 浏览

odata - OData 元数据中的 IsDefaultEntityContainer

当我使用 Microsoft.Data.OData.dll、v5.6.1.0 生成我的 EdmModel 时,如下所示:

然后生成元数据

我得到没有的 xml IsDefaultEntityContainer="true"。一些 OData 库需要该属性。我怎样才能添加它?

0 投票
2 回答
396 浏览

.net - 将值序列化为 OData

是否有函数(可能在 ODataLib 5.6.1 中)将 .NET 原始类型序列化为 OData URI 格式(请参阅参考资料)

例如:

0 投票
1 回答
273 浏览

odata - 使用 ODataLib 条目编写器时如何创建 ODataNavigationLink?

我试图找到一个如何正确实例化 ODataNavigationLink 的示例,以防它为非空。我发现的唯一代码示例创建了一个非扩展链接,但没有将其绑定到任何数据:

所以在这里我们指定“订单”的链接。但是我如何提供链接的实际值(在此示例中,链接是一个集合,但它也可以是单个条目)。当我手动编写有效负载时,我提供了带有链接条目 ID 的“href”属性。我无法弄清楚这是如何使用 ODataLib 完成的。

0 投票
1 回答
591 浏览

odata - ODataLib for OData V4 是否支持请求中的 Atom 有效负载?

我正在尝试将 ODataLib 用于 OData 协议 V4 (Microsoft.OData.Core) 以生成 Atom 格式的有效负载。我确保 Content-Type 和 Accept 标头引用 application/atom+xml,但是对 CreateODataEntryWriter 的调用总是会导致异常:

Microsoft.OData.Core.ODataContentTypeException:找不到与请求的可接受 MIME 类型匹配的受支持 MIME 类型。支持的类型 'application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false, application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=true, application/json ;odata.metadata=minimal;odata.streaming=true, application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible=false, application/json;odata.metadata=minimal;odata.streaming=false;IEEE754Compatible =true, application/json;odata.metadata=minimal;odata.streaming=false, application/json;odata.metadata=minimal;IEEE754Compatible=false, application/json;odata.metadata=minimal;IEEE754Compatible=true, application/json ;odata.metadata=minimal, application/json;odata.

这是导致异常的示例代码:

我检查了库代码,发现 ODataMessageWriterSettings 有一个属性 EnableAtom 但是这个属性被声明为内部的,并且它似乎不是从库内部设置的,所以它看起来总是错误的。我知道 Atom 格式在 OData V4 中已过时,是否支持生成条目有效负载?

0 投票
1 回答
896 浏览

asp.net-web-api - 可为空的枚举参数始终为空 odata 4 web api 2.2

按照此处的声明http://blogs.msdn.com/b/odatateam/archive/2014/07/03/odatalib-6-5-0-release.aspx

修复枚举的错误 1) ODataUriParser 应支持可空枚举作为函数参数。

我从 odata 3 和 webapi 2 升级(由于删除日期时间支持而导致大量时间成本!以及升级的各种其他问题)

果然,我可以正确地将 null 传递给我的函数。但是-无论我传递什么,都会以 null 的形式到达函数!

IE

要求

http://visits.backend/odata/Test(PastState=Data.Entities.PastVisitState '完成')

WebApiConfig

WebApp.Controller

如果它不可为空,则该值通过就好了。

NB

我刚刚将 nuget 包 odataLib 升级到 6.8.1 以确保(以前与 6.5.0 上的每个链接帖子一样)相同的行为。

我已经用可为空的 int 进行了测试,一切正常

我也尝试过 Nullable - 不高兴。

似乎是 Microsoft.OData.Core.dll 的错误?

0 投票
0 回答
271 浏览

c# - OData.net 将复杂的 ODataProperty 添加到条目

我正在使用来自http://odata.github.io的 ODataLib来生成 OData 有效负载(使用本教程http://odata.github.io/odata.net/#01-01-write-payload

它工作正常......几乎。事实上我需要

如您所见,“properties”标签包含许多原始类型属性和一个集合类型属性(EvoHourD1)。

就我而言,我不能使用模型(因为一切都是动态的)。我不能使用 complexType,因为电源查询不支持它。

这是我用来生成提要的代码:

谢谢您的帮助。

0 投票
1 回答
2013 浏览

asp.net-web-api - 用于删除 m:m 个实体之间关系的 OData 属性路由

该场景是一个使用 OData v4 的应用程序,服务器端 API 基于使用 ODataLib 的实体框架模型,客户端使用 Visual Studio 的 OData 客户端代码生成器扩展

我无法让 OData 属性路由用于删除 m:m 关系中实体的关系,客户端为此生成 DELETE 请求,格式如下:

用于创建链接的 POST 属性路由工作得很好 - 相关实体标识符在正文中编码,并且以下控制器操作方法声明有效(控制器本身具有[ODataRoutePrefix("tblTestRestaurant")]):

但是我无法为 DELETE 获得类似的工作,其中相关实体的 ID 是使用$ref?id=...URL 中的语法指定的。

我使用 ODataRoute 属性尝试了以下操作:

但是上述控制器操作都没有响应对http://developer4:8080/odata/tblTestRestaurant(241)/tblTestDishes/$ref?$id=http://developer4:8080/odata/tblTestDish(1).

我可以让它工作的唯一方法是不使用属性路由,而是依赖 OData 路由约定,即

此方法依赖于测试字符串 navigationProperty 来确定要修改实体上的哪个集合导航属性 - 相反,我更喜欢使用属性路由并在我的控制器中为每个集合导航属性设置一个单独的操作方法。

我使用了许多教程和文档,特别是 https://damienbod.wordpress.com/2014/06/10/getting-started-with-web-api-and-odata-v4/

我也经历了一些 OData WebApi 测试用例,特别是这个混合使用属性路由和 OData 路由约定的测试用例 - 但不包含删除链接的属性路由示例。

所以我的问题是 - 我应该使用什么 ODataRoute 属性语法和方法参数,假设 ODataRoute 属性确实支持删除 URL 中的这种 ...$ref?id=... 语法;如果没有,那么还有什么选择?

0 投票
0 回答
492 浏览

odata - 如何将 ODataUriResolver 添加到默认 ODataUriParser

我使用 OData-WebApi 和 ODataLib 创建了一个 OData v4 EndPoint。

我想将新的 ODataUriResolver 添加到 ODataWebApi 正在使用的默认 ODataUriParser 中。

我知道如何将自定义 ODataUriResolver 添加到 ODataUriParser 的新实例中,而不是添加到服务器正在使用的实例中。

有没有可以将新的 ODataUriResolver 添加到默认 ODataUriParser 的地方?有什么地方可以让我自己创建一个新的 ODataUriParser 吗?

非常感谢!

0 投票
1 回答
127 浏览

odata - OData 库是否支持扩展提要上的@odata.nextLink?

我正在使用 ODataLib 解析 OData V4 提要和条目。其中一个 OData 提要返回具有扩展关联的有效负载,如下所示:

注意元素“Account_Tasks@odata.nextLink”:它提供了指向扩展数据的链接。但似乎没有一个 ODataLib 类公开此属性。

此属性是由 ODataLib 公开还是当前不受支持?