我试图在我的微风应用程序中实现类似命令的东西,但我错过了客户端上的模型和我的数据库/EF db 上下文之间的“一点间接”。
所以这里有一个问题: 如何修改(创建/更新或删除)服务器上的实体,它不是客户端上修改(创建/更新/删除)的实体之一?
例如:
要允许更改用户密码,请在客户端上创建一个新的 CmdNewPassword 实体(带有 OldPassword 和 NewPassword 字段),但在服务器上检查旧密码是否正确并更新 User.PasswordHash 和 User.PasswordSalt。
或者
如果在客户端创建了新的 Invoice 实体,则在服务器上创建新的 LogEntry 实体以保留用户操作的日志。
保存拦截(http://www.breezejs.com/documentation/custom-efcontextprovider#SaveInterception)表示可以从 BeforeSaveEntities 返回的地图中添加或删除实体,但我认为不可能为此添加任何内容map,因为 EntityInfo 的属性有内部设置器。