我试图在我的微风应用程序中实现类似命令之类的东西,但是我想念客户端上的模型和我之间的# 一些间接"数据库/ EF db上下文。
所以这是一个问题: 如何在服务器上修改(创建/更新或删除)实体,该实体不是客户端上修改(创建/更新/删除)的实体之一?
例如:
要允许用户密码更改,请在客户端上创建新的CmdNewPassword实体(包含OldPassword和NewPassword字段),但在服务器上检查旧密码是否正确并更新User.PasswordHash和User.PasswordSalt。
或
如果在客户端上创建了新的Invoice实体,请在服务器上创建新的LogEntry实体以保留用户操作的日志。
保存拦截(http://www.breezejs.com/documentation/custom-efcontextprovider#SaveInterception)表示可以在BeforeSaveEntities返回的地图中添加或删除实体,但我不认为可以向此地图添加任何内容,因为EntityInfo' s属性有内部设置器。
答案 0 :(得分:1)
编辑:2013年5月8日 - 从Breeze网站上提供的v 1.3.3开始,现在有一个新的公共ContextProvider.CreateEntityInfo方法,您应该可以从内部调用你的BeforeSaveEntities方法。
你是对的,你正走在正确的道路上,想要修改传递给BeforeSaveEntities方法的saveMap。目前,您可以从地图中删除和修改实体,但没有好办法添加实体。我将尝试在下一个版本中修复此问题。