Deep Insert和$ batch OData之间的区别

mit*_*dir 2 odata

任何人都可以告诉我在OData的上下文中使用Deep Insert和$ batch - ChangeSet之间的区别吗?我有一个场景需要一起创建销售订单表头和销售订单项目.

  • 我可以使用Deep Insert(BTW是这个标准的OData规范吗?)或者
  • 我可以使用$ batch(这是标准的OData规范)调用,将这两个实体指定为同一ChangeSet的一部分,这将确保它们作为单个LUW的一部分保存在一起.

使用这两种方法有哪些优点/缺点?有经验吗?干杯

小智 5

Deep Insert是OData规范的一部分,请参阅http://docs.oasis-open.org/odata/odata/v4.0/os/part1-protocol/odata-v4.0-os-part1-protocol.html# _Toc372793718.

深度插入允许在一个请求中创建相关实体的树.它只是插入.

$ batch允许将任意请求分组为一个请求,并将任意修改操作分配到LUW(称为更改集).

对于仅插入的情况,深度插入更容易:您只需使用$ expand来获取与GET相同的格式.