0

そよ風アプリにコマンドのようなものを実装しようとしていますが、クライアントのモデルとデータベース/EF db コンテキストの間に「少しの間接性」がありません。

ここで質問があります: クライアントで変更 (作成/更新/削除) されたエンティティの 1 つではない、サーバー上のエンティティを変更 (作成/更新または削除) するにはどうすればよいですか?

例えば:

  1. ユーザー パスワードの変更を許可するには、クライアントで新しい CmdNewPassword エンティティ (OldPassword フィールドと NewPassword フィールドを含む) を作成しますが、サーバーでは古いパスワードが正しいことを確認し、User.PasswordHash と User.PasswordSalt を更新します。

    また

  2. クライアントで新しい Invoice エンティティが作成された場合は、サーバーで新しい LogEntry エンティティを作成して、ユーザー アクションのログを保持します。

インターセプトの保存 ( http://www.breezejs.com/documentation/custom-efcontextprovider#SaveInterception ) は、BeforeSaveEntities によって返されるマップにエンティティを追加または削除できると述べていますが、これに何かを追加することはできないと思いますEntityInfo のプロパティには内部セッターがあるためです。

4

1 に答える 1

1

編集: 2013 年 5 月 8 日 - Breeze Web サイトで入手可能な v 1.3.3 の時点で、BeforeSaveEntities メソッド内から呼び出すことができる新しいパブリック ContextProvider.CreateEntityInfo メソッドがあります。


あなたは正しく、BeforeSaveEntities メソッドに渡された saveMap を変更するという考えで正しい道を進んでいます。現在、マップからエンティティを削除および変更できますが、エンティティを追加する良い方法はありません。私は次のリリースでこれを修正しようとします。

于 2013-05-08T02:06:54.767 に答える