问题标签 [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# - Web APi OData V4 问题“实体''没有定义键
当我运行以下示例时,它会引发以下异常...
附加信息:实体“TestEntity”没有定义键。
我已经使用代码优先实体上下文配置了密钥...
modelBuilder.Entity<TestEntity>().HasKey(t => t.EntityID);
问题是什么?为什么 OData V4 不使用配置的密钥?
c# - odata v4 使用 2 个参数
我只想将 2 个参数传递给控制器并运行我的 sql 函数尝试并在没有运气的情况下搜索了很多资源,
谁能给我一些提示?
基本上我遵循这个Web API 和 OData-传递多个参数
当我使用builder.Function
编译器时,请告诉我没有找到扩展方法。
包配置
我的 WebApiConfog.cs
asp.net-web-api2 - Microsoft OData Client 6.x with OData service 4.x handle NULL return (404 Not Found) on the client
I can't seem to figure out how to handle NULL (404 Not Found) on the client when calling an OData function for a given Entity.
Ex> calling service like "Context.Objects.ByKey(1).SomeFunction().GetValue()"
I want to get "NULL" from the service but instead on the client it throws a 404 Not Found exception.
If I alter the service to return "NULL" then I will receive a serialization exception on the server and if I tell the server to return "OK(null)" I will also get a serialization exception.
Here is the server code for the controller
And here is the WebApiConfig code
I can't seem to find the "proper" way of handling null values from the odata service when using Microsoft OData client.
Maybe I can wire into the client "ReceivingResponse" event to handle the 404 Not Found some how? Any suggestions...
c# - Asp.Net Web API ODATA 的 GROUP BY / 不区分大小写扩展?
在 ODATA V4 文档中无法通过引用找到组。当我们在 URL 中传递 group by 查询时,它只返回键,而不是实际的分组结果。
在 ODATA Web API 的扩展点上使用 Asp.Net ODATA 中的 Group by 的任何参考。我们需要全面掌握如何解析 ODATA 查询并将其转换为 LILNQ 到实体查询。
我说的是拦截 ODATA 查询和执行手动自定义,例如 LINQ to Entities
我正在尝试为区分大小写实现类似的扩展。 Web API中的OData大小写敏感过滤?
c# - OData-v4 - 对实体集合进行操作,然后执行功能
在我的 ODATA-v4 控制器中,我有以下代码:
在 CurrentTestResultController.cs 中,我看似简单:
本质上,对于CurrentTestResult
集合中的所有实体,它返回集合中TestResultTypeId
出现的不同。(这是一个微不足道的操作,但我简化了一个更复杂的真实生活场景)
这很容易做到 - 但我似乎无法首先CurrentTestResult
过滤它应该操作的集合。
此请求,默认情况下对所有 CurrentTestResult 实体进行操作
localhost/app/odatareport/CurrentTestResult/Default.Breakdown
返回
(正确的结果,有 5 种不同的类型)
然而,这个试图简单地先过滤掉它的请求失败了
localhost/app/odatareport/CurrentTestResult/Default.Breakdown?$top=2
返回
据我了解 ODATA 管道,为什么失败是有道理的。控制器方法将返回一个 IQueryable,然后将应用 ODATA $filter、$top 等。
我想要一个函数来对已经被过滤掉的集合进行操作。
我想要做的甚至可能吗?
我知道 Breakdown 方法本身有 .GetAll() ,但必须有一种方法可以在方法之前应用过滤 -
否则,这一切都是毫无意义的......
c# - ODATA v4 批处理 - 如何在服务器上将请求作为批处理处理?
使用 ODATA v4 批处理 - 如何在服务器上将批处理请求作为批处理处理?
我有一个客户端成功创建了一个 1000 的 POST 请求,并将其作为批处理创建到我的 webapi 端点。我的端点正在运行 C# 和实体框架。
问题是我的端点中的控制器单独处理每个条目,并在批处理请求中为每个创建进行一次数据库旅行。
因此,虽然它是一个 POST,但一旦在服务器上,它们不会作为一个批次处理。
有没有办法将批处理请求作为批处理?
asp.net-web-api2 - 带有 protobuf 的 OData
我想将 Web API 2 / OData 与protobuf一起使用。
有几篇关于如何让 Web API 服务使用协议缓冲区的文章,但我似乎找不到任何关于如何让 OData 客户端库在客户端上反序列化的文章。
https://www.infoworld.com/article/2982579/application-architecture/working-with-protocol-buffers-in-web-api.html
https://damienbod.com/2014/01/11/using-protobuf -net-media-formatter-with-web-api-2/
我很确定我需要在 OData SendingRequest / ReceivingResponse 事件中做一些事情,但我似乎找不到任何关于如何实现这一点的文章。
c# - 对 Apply with Aggregate OData Version 4 的结果执行 OrderBy
考虑我有一个像这样的 odata 查询:
会话和应用程序实体由 ApplicationId 链接。我想在“Total”上应用 orderby 并获得前 5 个结果作为 odata 查询响应。
我尝试&$top=5
在上述查询的末尾添加。它说:
URI 中指定的查询无效。在“会话”类型上找不到名为“总计”的属性。
谁能告诉我是否支持这样的查询?
c# - 带有“and”运算符的 OData 过滤器在 Web Api 中不起作用
我正在创建一个带有单个 GET 操作的 Web Api,它处理以下获取请求。
GET https://localhost:44378/v1/RoutePrefix/Route ?$filter=Id eq '1234'$select=Name (这个工作正常)
GET https://localhost:44378/v1/RoutePrefix/Route ?$filter=Id eq '1234' 或 MessageType eq '1' (这工作正常)
GET https://localhost:44378/v1/RoutePrefix/Route ?$filter=Id eq '1234' and MessageType eq '1' (这个不起作用。响应值总是[])
看起来带有“and”运算符的过滤器不起作用。“或”运算符对我来说很好用。
我的 webapiconfig.cs 中有以下代码。
在我的控制器中,根据过滤器参数的数量,我调用不同的方法。并且这两种方法都返回 List 作为对 GET 方法的响应。在 Main get 方法中,我返回 Ok(List.AsQueryable())。
我用 [EnableQuery] 属性装饰了控制器并实现了 ODataController,如下所示:
[EnableQuery] 公共类 RouteController : ODataController
Get 方法如下所示:
请让我知道做错了什么。
谢谢
odata - OData V4 属性路由未使用正确的操作
我在 OData V4 中遇到属性路由问题。我有一个简单的客户模型类和一个控制器,它有 2 个 Get 方法。但是,每当我尝试获取特定的 Customer like/Customers(7)
时,它总是使用第二个 Get 方法来获取所有客户,但从不使用 id 参数闯入该方法。我在这里想念什么?谢谢!
控制器:
WebApiConfig: