问题标签 [odata-v4]
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.
c# - OData:使用 ODataConventionModelBuilder 映射继承的键
有这些:
然后我可以像这样设置公共主键:
但是,当我这样做时,每个派生类型都会被映射,这由于各种原因是不可取的,一个是我有几十个派生类型。耐心地,我试图忽略每一个我不想要的,我最终得到了这个错误:
我确实相信这些忽略最终会以某种方式相互重叠。我只是无法为它们中的每一个微调一个忽略块。到目前为止唯一有效的是将 ID 属性重新定义为每个派生类的新属性,这几乎违背了基类的全部目的。
有什么提示吗?
c# - 如何使 OData v4 函数/操作字符串 Unicode?
说,我有一个像这样的动作定义
然后在元数据中,结果看起来像这样
这里Unicode
是假的。此定义是否像 .NET 字符串一样工作,或者应该如何使其显示为Unicode="true"
?
我该怎么做Unicode="true"
?
c# - 如何调用 OData 客户端生成器生成的 OData 函数/操作?
链接到我的另一个问题,如果我有一个具有以下定义的 OData 函数
这导致以下服务定义(关于此操作)
那么我如何从 OData v4 T4 生成的代码中调用该函数呢?
我看到有一个ExtensionsMethods
用以下函数 int命名的类
}
但我不知道如何在代码中进行调用。也就是说,如果我想写类似
这似乎并不容易。我怎么能调用这个函数?
c# - OData v4 的函数字符串参数中的字母数字字符串被解析为 int 为字符串,或 null
我在将字母数字字符串作为 OData 函数的参数传递时遇到了一些问题。这是它的签名:
及其配置:
及其元数据:
以下是带有关联调用的“常量”控制器方法参数的不同解析值:
如果我尝试不使用单引号,则会收到 406 Not Acceptable 错误。
我尝试将 OData 的 WebAPI 2.2 更新到最新版本 (5.4.0) 并更新到最新的 ODataLib (6.10.0),但这并没有帮助。
知道有什么问题吗?
如果重要的话,我正在混合使用 WebAPI 和 MVC(用于帮助页面)。这是我的路由配置。
MVC:
网络接口:
数据:
linq - Odata v4 ODataModelBuilder 关系构建器
我正在使用 OData v4 实现 web api 我的数据库结构是单独的表我的表之间的关系应该在 Enitiy 框架内表示我已经为我的数据库结构器实现了我的 EF 模型,如下所示:
我怎样才能实现我的表之间的关系,这样我就可以使用这样的查询,或者我是否可以从我的控制器使用正常的 linq 查询操作,但它不适用于我
http://localhost:13193/api/table1 ?$expand =表2
c# - 绑定函数调用返回 InvalidOperationException
我正在关注这个OData V4 教程,现在遇到了绑定函数的问题MostExpensive
。
此函数绑定到Products
集合并WebApiConfig.Register()
按照教程中的建议进行注册:
本教程的第 2 部分仅描述了此服务的基本客户端。所以我想扩展它,以便我也可以调用教程后面部分中描述的函数。
OData Client Code Generator
我已经按照教程中的建议创建了客户端。然后我添加了一些产品和供应商,然后想要获得最昂贵的产品:
调用GetValue()
时,我得到一个引用类型但预期类型的InvalidOperationException
说明。http://localhost:52542/$metadata
Edm.Decimal
Collection(Edm-Decimal)
http://localhost:52542/Products/ProductService.MostExpensive()
当我直接在浏览器中调用时
这似乎是正确的。
我做错什么了吗?我不知道如何解决这个问题。那么对此有什么建议吗?
c# - 无法返回对象
我想通过它的名称找到它来返回这个对象:
控制器方法是:
WebApiConfig.Register()
方法是:
通过调用http://http://localhost:52542/Products(1)
,我确实得到了 ID 1 的产品,如预期的那样:
但是当我打电话时,http://http://localhost:52542/Products/ProductService.GetByName(Name='yo-yo')
我可以调试到控制器函数并返回结果,但我在浏览器中收到错误消息An error has occurred.
。消息是The 'ObjectContent 1' type failed to serialize the response body for content type 'application/json; odata.metadata=minimal'.
,内部异常是The related entity set or singleton cannot be found from the OData path. The related entity set or singleton is required to serialize the payload.
.
这里有什么问题?
asp.net-web-api - $expand 中的 OData 查询选项 $count 不起作用
我试图在 $expand这样的查询中使用$count
但是 count 在结果中找不到。
也没有错误。我正在使用 ASP.NET Web API OData 5.4,它使用的是 OData v4。
是什么赋予了?还没实施?
odata - Web API 2.2 - OData v4 ODataQueryOptions.applyTo() returning null when $select or $expand present?
I have setup a Web API 2.2 ODataController such that I can process my OData options manually (i.e. Without [EnableQuery] and or using a ODataQueryOptions parameter). However I have run into what looks like a bug. Given the following code:
Which works 100%, however adding a $select or $expand like this:
will return null from
which has forced me to create two separate ODataQueryOptions, one to applyTo the IQueryable (without any $select or $expand), and another with just the $selects/$expands to build the SelectExpandClause to assign to Request.ODataProperties().SelectExpandClause.
I just don't understand why the null return is happening. The core intent behind this code is to allow for better control over processing OData when working with ORMs other than Entity Framework. So realistically I'd end up overriding applyTo anyways (or just manually processing the expression tree myself), but this particular example still seems like a bug to me.
Can anyone give me some insight on this? Maybe there is just something I'm missing.
asp.net-web-api - 未绑定函数的返回集合给出序列化错误
我有以下设置,它应该返回一个 FooBars 列表。但由于某种原因它无法序列化:(
配置
未绑定函数
错误
调用localhost/odata/Test会出现以下错误
$元数据片段