问题标签 [odatacontroller]

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 回答
1157 浏览

c# - Change field type in Odata OrderBy

I have OdataService with CustDetails table (I am using Entity Framework). In the table I have column PostalCode of string type. When I sort the data it working fine. It sort the data by considering it as string type. But my requirement is, in my PostalCode all values are integer value only , so I need to sort the data by considering it as integer type. Is it possible to change the field data type while sorting ?

Actual sorted Result:

But My expected result is

Please help me to overcome this. Note: I am not able to change the data type in database.

0 投票
1 回答
1552 浏览

entity-framework - 如何为 Web API 2 OData 数据控制器创建自定义实体

我需要将传统的 Web API 2 数据控制器迁移到 OData v4 样式的数据控制器。这很容易使用标准的一对一表到实体关系,但我现在需要在我的数据控制器响应中使用几个不同的表(没有真正的约束)。我无法弄清楚如何在我的 WebAPI.config 文件中注册这个新的自定义“实体”。

这是我的 WebAPIconfig.cs 的示例:

这是我的 Web API 2 数据控制器的示例:

这是我的 OrderDetails() 类当前的示例:

如何制作此 Web API 控制器的 OData 版本,以及如何在我的 WebAPIConfig.cs 中为其注册 OrderDetails 类?

0 投票
1 回答
2373 浏览

routing - OData属性路由:一个控制器多数据类型

我正在阅读 OData V4 更新博客:https ://blogs.msdn.microsoft.com/webdev/2014/03/13/getting-started-with-asp-net-web-api-2-2-for-odata -v4-0/

它提到了新添加的用于属性路由的 [ODataRoute] 属性。在传统的 WebApiController 中,我可以使用多种类型的 [Route] 属性来指定路由。例如,假设我有两个课程 Travel 和 Hotel。我可以通过以下方式为他们两个拥有一个控制器:

使用 OData 堆栈,默认情况下,每种数据类型都绑定到一个控制器,这意味着我需要两个控制器:

那么有没有办法使用 ODataController 和 ODataRoute 将多种数据类型路由到一个控制器?(我尝试简单地将 [Route] 替换为 [ODataRoute] 但它不起作用)

0 投票
2 回答
1431 浏览

entity-framework - 如何使用 Microsoft.OData.Client 和 Web Api 发布导航属性

我有两个类,没有另一个类VehicleOwnershipRecord两者都不能持久化到数据库中。AVehicle必须至少有一个OwnershipRecord,并且 anOwnershipRecord必须与 a 相关联Vehicle。否则没有意义。

使用 Web Api 和 OData v4 客户端代码生成器我还没有想出一种方法来序列化两个对象并将它们一起发布。看来我需要发布车辆然后添加 OwnershipRecord 或发布 OwnershipRecord 然后添加车辆,这是不可能的。

DataServiceContext.AddObject提供以下内容:

对象被放入处于已添加状态的 DataServiceContext 的跟踪集中。DataServiceContext 将在下次调用 SaveChanges 时尝试通过 HTTP POST 插入对象。此方法不会将与指定实体相关的对象添加到 DataServiceContext。必须通过单独调用 AddObject 来添加每个对象。

该方法不验证指定的实体集是否在与 DataServiceContext 关联的数据服务中,或者添加的对象是否具有需要添加到指定实体集的所需属性。

因此,所有导航属性在传递时都为空。因此,当我将OwnershipRecords 添加到 newVehicle 然后调用Container.AddToVehicles(newVehicle)时,呈现的 POST 方法VehiclesController会呈现ModelState.IsValid为错误的说法Vehicle must have an owner!

如何使用客户端代码发送带有导航属性的车辆并将两者相加?我尝试使用AddLinkand AddRelatedObjectContainer但它不适用于相对 url,因为这些项目尚不存在。

这是我的 WebApiConfig.cs 和我的 ODataControllers。

==更新==

目前,我正在序列化有效负载JsonConvert并使用WebClient. 我已经ModelState从服务器中删除了所有逻辑。目前似乎不支持在客户端代码中包含导航属性。我可能不完全理解拦截batch命令,因为如果我可以使用expandGET,我应该能够使用类似于expandPOST 的东西

0 投票
1 回答
149 浏览

asp.net - ASP.net 客户端和 ODataController 问题

我有一个带有 2 种方法的 ODataController:

使用标准的 WebApiConfig:

我可以在 url 栏中输入 mydomain.com/odata/items(guid'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX') 并将数据库对象获取为 json 就好了。

但是当我尝试以下客户端代码时:

我得到远程服务器返回错误:(404)未找到。

我知道这可能是一个简单的错误,但已经搞砸了太久,而且我是 asp.net 的新手。

0 投票
1 回答
310 浏览

odata - OData v4 DefaultODataBatchHandler NotImplementedException

在我的网络服务中,我设置了批处理请求。我包装DefaultODataBatchHandler课程只是为了添加断点。它正在成功处理请求,并且该CreateResponseMessageAsync方法正在创建200 OK响应。但客户收到以下信息:

我不知道这是为什么或从哪里来的。

ODataConfig.cs

0 投票
1 回答
24 浏览

.net - 问题实现子类方法

所以我遇到了一点问题......问题是我有一个基类,它具有所有 GET/POST/PUT/DELETE 的实现,它是一个通用类,所以基本上我更新的任何我的实体都会通过那里和然后我有一个实现该类的实体类...

问题是,对于其中一个实体,我想在更新数据库之前实现额外的逻辑,所以我想我只是在子类上执行它,然后在新逻辑之后我调用基类方法,这应该可以解决问题,所以我创建了一个重载方法

我遇到的问题是,当我从客户端发出请求时,如果我没有实现这个新方法,它可以正常工作并调用基类方法并更新实体,但是在我添加这个之后,完全使用相同的 ajax 请求它返回 400 响应......谁能帮我弄清楚发生了什么?非常感谢 :)

0 投票
0 回答
546 浏览

angularjs - 在 HTTPPOST 方法中获取 ODataQueryOptions

我正在使用 HTTP POST 从 ODataController 获取数据。但我无法查询我的服务

如何从客户端发送请求以接受 ODataQueryOptions 对象?

但是在 ODataQueryOptions 对象中,我将 ODataQueryOptions 对象中的 'Filter' 和 'OrderBy' 设为 null。

这是我创建请求的剑道参数映射方法

我怎样才能做到这一点?

无需修改 API Controller 中的查询选项。我可以以哪种格式将数据发送到 API 以将其作为 ODataQueryOPtions 对象接受。截至目前,我的“请求有效载荷”是

我怎么能做到这一点?这个 EnableQuery 可以与“HTTP POST”一起使用吗?提前致谢

0 投票
1 回答
71 浏览

controller - 数据控制器

我创建了一个测试 OdataController,它以原子格式返回响应,如下所示,我想将其用作 Excel 中的 Odata Feed,但出现 406 Not Acceptable 错误。xml中有什么问题?以及如何在 Excel 中针对此任何 Odata 问题进行调试?

0 投票
0 回答
179 浏览

entity-framework - 在 oData 控制器中加入 2 个实体后如何返回 IQueryable 结果

我有两个表UU_DeliveryChargesSC_Countries,我想在我的 odata 函数中将结果集作为这两个表的连接返回,但出现异常:

无法在 LINQ to Entities 查询中构造实体或复杂类型“ULYXModel.UU_DeliveryCharges”。

我是oData的新手,请帮忙。

oData Web API:

模型: