问题标签 [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 回答
776 浏览

asp.net-web-api - OData v4 WebAPI - 从 ODataController 获取实体

在我的 OdataController 中,我公开了实体 Customer(例如)。我有一个方法:

这工作得很好。要返回单个实体,我有这个方法:

这也很好用。

*所以这是我的问题*

GetCustomer 是返回单个实体的唯一签名选项吗?我不确定 ODataController 如何知道如何解决此方法签名,但我想知道是否有通用的方法来定义它。

0 投票
1 回答
57 浏览

asp.net-web-api - 是否可以使用 WebChannelFactory 向 WebAPI/OdataController 函数/操作发出请求?

我已经为我的 Web-API 实现了 OdataController(s)。是否可以使用 ChannelFactory(或 WebChannelFactory)与 Web-API 进行通信,特别是我想调用自定义函数和/或操作。

当然,我创建的 OdataController 确实实现了 ServiceContract。但我不确定这是否可能因为 url/命名空间。

0 投票
1 回答
873 浏览

entity-framework - 实体框架代码优先自定义属性

我首先在 spa 应用程序中使用实体框架代码和 OData 控制器,对于我的复合表(例如:Personnel -> PayRolls),我在具有 NotMapped 属性的部分类中添加了两个属性。因为我稍后会在保存更改时使用它们。我检查记录是否已在客户端被删除或修改以保存在数据库中。

部分类是:

如果我在加载数据期间未添加 NotMapped 属性,则会出现 sql 异常,显示Invalid column name 'IsDirty'。\r\nInvalid column name 'IsDeleted。所以我添加了 NotMapped 属性以使其了解它们不是数据库的表字段。

但在保存数据期间出现错误,显示:“Template.CodeFirst.PayRoll”类型上不存在“IsDirty”属性。确保仅使用由 type 定义的属性名称。它首先与实体框架数据库(.edmx 文件)一起工作得很好。

oDataController 上的 Put 方法是:

提前致谢

0 投票
1 回答
396 浏览

odata - 从启用 oData 的 web api 获取计数 获取函数

我有一个启用了 oData 的经典 REST Web api 控制器,它具有类似的 Get 功能

我需要了解如何拨打电话以仅使用某些 url 获取记录数

我试过了

但我明白了

消息:“不支持查询参数 '$count'。”

请注意,我使用的是返回 IQueryable 集合的 MongoDb。

0 投票
2 回答
3214 浏览

javascript - kendo - datasource - parameterMap 不绑定参数

我不确定我这样做是否正确,因为我是整个这些系统的新手,但我想管理我的剑道网格数据(分页、过滤器等)。我在 ASP.NET Web API 2 中使用这个 ODataController,它是从 OData 包的版本 4 驱动的,它支持如下参数:$top、$skip、$count。ETC...

由于阅读了许多不完整的hello world,示例,堆栈线程,测试了其中的许多,我到达了这部分(下面的代码),它支持其他不存在的参数(如:take):

该代码使用注入的匿名函数,它可以定义自定义参数并映射它们。

在检查完之后,我在这里和那里进行了一些更改,例如设置模式,并添加新条件(因为它们在示例代码中留空)。

现在,发布给我的是,在运行我的应用程序之后,我注意到,即使它没有应用我的代码段......

但它甚至没有应用其他部分,而且 JavaScript 调试器也不会在函数内部中断...。因此,例如,它不会添加诸如计数之类的参数...

所以,我来这里首先,确保我走的是正确的路,其次,如果它是正确的,那么如何解决它......

我还阅读了一些关于将内容更改为 JSON 的内容,但我假设我的数据是 JSON,因为我没有定义任何内联字符串...

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

rest - ODataController 的性能问题

我们开发了一个处理数百万条记录的物流域系统。为了根据用户应用的过滤器显示记录,我们使用查询中包含的过滤条件获取数据并取回结果。

现在我们已经在我们的系统中实现了 ODataController,在实现之后性能已经降低并且需要花费很多时间来执行用户操作。

我有一个 ODataController。在里面我有一个返回 IQueryable 结果的 GetAllDetails() 方法。

我的数据库中有 300 万个详细信息。我需要在表格上每页显示 100 条记录。

ODataController 是否先执行查询,然后对其应用过滤器?我怎样才能提高性能?

0 投票
1 回答
670 浏览

asp.net-web-api - OdataClient SaveChanges 不起作用并导致空 Microsoft.OData.Client.DataServiceResponse

由于一些扩展,我封装了 odata 容器:

当我使用我的 .dll (使用 Connector 类)时,我有一个空结果( statuscode = -1,no headers,...)(通常)执行的空 OdataServiceResponse

这就是我调用 DLL 的方式

可能是因为我的对象无效。但奇怪的是我没有看到任何验证发生......

关于如何传播 SaveChanges() 或预验证(在提交之前)实体的任何想法?帖子没有发生(与 Fiddler 核对)

0 投票
2 回答
553 浏览

asp.net-web-api - 返回后 ODataController 出错

我有一个 OData 服务,它使用 ODataController 使用多个 MVC 控制器实现。除了一个控制器之外,我遇到了所有控制器的问题,在我的 return 语句之后返回了内部 500 错误而没有任何帮助:

另一个使用相同 DataAccess 类的控制器可以很好地返回数据。为每个其他控制器返回的所有内容是:

在我的 return 语句之后似乎出现了错误,如果我在 return (F10) 之后单步执行,我会点击每个人 { get; 集合返回的实体上的属性,然后将带有上述错误的结果返回给浏览器。我一生都无法获得实际的错误信息(内部错误),奇怪的是一个控制器正在工作,而其余控制器则失败而没有任何细节。

有没有人知道可能导致这种情况的原因,或者如何在返回语句之后打开错误详细信息?

在 global.asax.cs 中没有帮助,web.config 中的以下任何一个也没有帮助:

知道如何获得引发的实际异常吗?

0 投票
1 回答
902 浏览

asp.net-web-api - odata 查询再次工作 ApiController 但不再工作 ODataController

我尝试在 WebAPI 2 中使用System.Web.OData.ODataController 。

WebConfig.cs

控制器:

当我尝试查询数据时出现错误:

当我用 ApiController 替换 ODataController 时,查询效果很好。

请求标头:

ODataController 响应标头:

ApiController 响应标头

在客户端,我使用 JayData。

怎么了 ?任何想法?