0

我试图在我的微风应用程序中实现类似命令的东西,但我错过了客户端上的模型和我的数据库/EF db 上下文之间的“一点间接”。

所以这里有一个问题: 如何修改(创建/更新或删除)服务器上的实体,它不是客户端上修改(创建/更新/删除)的实体之一?

例如:

  1. 要允许更改用户密码,请在客户端上创建一个新的 CmdNewPassword 实体(带有 OldPassword 和 NewPassword 字段),但在服务器上检查旧密码是否正确并更新 User.PasswordHash 和 User.PasswordSalt。

    或者

  2. 如果在客户端创建了新的 Invoice 实体,则在服务器上创建新的 LogEntry 实体以保留用户操作的日志。

保存拦截(http://www.breezejs.com/documentation/custom-efcontextprovider#SaveInterception)表示可以从 BeforeSaveEntities 返回的地图中添加或删除实体,但我认为不可能为此添加任何内容map,因为 EntityInfo 的属性有内部设置器。

4

1 回答 1

1

编辑:2013 年 5 月 8 日 - 从 Breeze 网站上提供的 v 1.3.3 开始,现在有一个新的公共 ContextProvider.CreateEntityInfo 方法,您应该能够从您的 BeforeSaveEntities 方法中调用它。


您是对的,并且您的想法是正确的,即修改传递给 BeforeSaveEntities 方法的 saveMap。目前,您可以从地图中删除和修改实体,但您没有添加实体的好方法。我将尝试在下一个版本中修复此问题。

于 2013-05-08T02:06:54.767 回答