Odata 允许更新集合的RESTAPI

Odata 允许更新集合的RESTAPI,odata,asp.net-web-api,Odata,Asp.net Web Api,允许基于WebAPI OData的webservice更新整个集合的最佳实践是什么 例如,我们有一个管理员页面,允许用户维护付款条件列表。我们已经创建了一个基于PaymentTerm实体的控制器,它允许标准的Get、Get by key、Put、Post和Delete来处理PaymentTerm实体的单个实例。但是,我们的UI团队希望检索付款条件集合(使用标准Get集合可以轻松完成),在本地对其进行操作,然后将整个集合放回或发布回服务器,而不必对服务器进行一系列的Put、Post和Delete调

允许基于WebAPI OData的webservice更新整个集合的最佳实践是什么

例如,我们有一个管理员页面,允许用户维护付款条件列表。我们已经创建了一个基于PaymentTerm实体的控制器,它允许标准的Get、Get by key、Put、Post和Delete来处理PaymentTerm实体的单个实例。但是,我们的UI团队希望检索付款条件集合(使用标准Get集合可以轻松完成),在本地对其进行操作,然后将整个集合放回或发布回服务器,而不必对服务器进行一系列的Put、Post和Delete调用

我已经尝试为此创建了一个操作方法,虽然我已经成功地让它工作了,但它似乎有点困难,因为它需要一个ID,以及odata参数(包含集合),而ID毫无意义,因为此时您使用的不是付款条件的实例,而是它们的整个集合

我可以创建一个新的控制器,只用于处理付款条件集合,但我不确定这是否会更好,因为它最终必须有一个

EntitySetController<PaymentTermCollection, int>
EntitySetController

或者诸如此类的东西,这没有多大意义,因为集合没有任何意义的键

> P>您应该考虑使用EntyStandApPosiCandror在Web API中支持$批量(ODATA标准部分) 然后,在JayData、breeze等的支持下,您可以轻松地向服务器提交一包更改,包括多个实体的post put删除。。。
祝你好运

看起来是最好的处理方法,谢谢。不幸的是,WebAPI中OData的当前发布版本似乎不支持$batch,因此在下一次更新之前,我似乎必须找到一个解决方法。如果您使用EntitySetApicController而不是经典的Api控制器类,那么即使在ASP.NET Web APICan中,您也可以使用$batch。您能告诉我有关此问题的任何文档吗?我一直找不到关于在标准Web API(非OData)控制器中使用$batch的任何信息,我能找到的关于在OData中使用$batch的唯一参考资料要求OData的5.0版本能够工作,该版本仍然是预发布的。