在 OData V2 模型中创建新实体存在三种不同的方法。 最适合的方法取决于应用程序用例。
对于所有方法,对应的 API 都采用一个 groupId 指定一个批处理组,以控制何时将创建实体的 POST 请求发送到后端; 默认情况下,使用延迟批处理组 change
.
方法1:ODataModel.createEntry
ODataModel.createEntry
创建一个条目并返回与其对应的上下文。 在以下情况下使用此方法:
- 有一个表单或弹出窗口,最终用户可以在其中查看和修改新条目的数据,但是这个新创建的数据不需要在表格中显示。这是因为如果需要在表格中显示,我们直接使用这篇教程介绍的方法来新建数据更合理:
- 想创建一个条目而不在 UI 上显示它。
[图片]
该方法获取要创建的实体集的路径,以及创建条目的可选初始属性; properties 参数中使用的路径和属性名称都必须存在于 OData 服务的元数据定义中。
将初始数据创建为通过模型中的 getObject 检索的现有数据对象的副本时要小心:需要从副本中删除 __metadata 属性,因为它不能在创建请求的有效负载中发送。
此方法返回的上下文是 transient
的。 这意味着相应的实体只存在于客户端上,直到它被持久化(对于延迟批处理组,使用 submitChanges API),从而将其状态更改为持久化,或者使用 resetChanges API 将其删除。
请注意,当在 submitChanges 上发送的创建请求失败时,它会在下一次调用 submitChanges 时自动重试,然后可能会成功,例如因为添加了缺少的属性。
网友评论