breeze - 如何执行自定义保存的示例

breeze - example of how to perform custom save

我已经在 breeze 上阅读了有关自定义保存来自客户端的调用的文档 - http://www.getbreezenow.com/documentation/saving-changes - 所描述的内容听起来正是我想要做的 -

"But you might have a specific business process to perform when you save a certain constellation of entities. Perhaps the actual storing of changes in the database is only a part of a much larger server-side workflow. What you really have is a "command" that includes a database update."

虽然我真的不知道如何将其付诸实践。假设我有实体 "A",当我保存时,需要启动一些自定义业务流程。好吧,我可以在客户端拆分 A 类实体并执行类似

的操作
var so = new SaveOptions({ resourceName: "myCustomSave" });
myEntityManager.savechanges(Aentities, so);  
myEntityManager.saveChanges(everythingButAEntities);

但是我会用 JObject "saveBundle" 来点击 "myCustomSave"。

我是否反序列化为实体,执行我的自定义业务流程,然后序列化回保存包并继续发送以供保存?

假设实体 A 有一个子实体 C - 如果通过标准 getChanges 保存 C,如何更新关系?

我知道我可以 intercept the save request 并覆盖 BeforeSaveEntity 方法,但这有点像将我的业务逻辑放在数据层中。不过,这似乎是最简单的方法。

看看 BeforeSaveEntities 方法。它需要一个 saveMap 参数,您可以在保存过程中使用新 added/modified 实体更新该参数。

http://www.getbreezenow.com/breeze-sharp-documentation/contextprovider