是否可以在客户端更改对象A,但修改服务器上的对象B? [Default Breeze WebApi]

时间:2013-05-07 10:45:10

标签: breeze

我试图在我的微风应用程序中实现类似命令之类的东西,但是我想念客户端上的模型和我之间的# 一些间接"数据库/ EF db上下文。

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

例如:

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

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

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

1 个答案:

答案 0 :(得分:1)

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


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