カスタム EFContextProviderについて読んで実装した後も、サーバー側の検証を実行する最良の方法と、保存する前にビジネス ルールを適用する方法を理解しようとしています...つまり、私の質問は、本来あるべき 2 つのメソッドを中心に展開しています。オーバーライド:
protected override bool BeforeSaveEntity(EntityInfo entityInfo) { //}
protected override Dictionary<Type, List<EntityInfo>> BeforeSaveEntities(Dictionary<Type, List<EntityInfo>> saveMap) { // }
ドキュメントでは、「 BeforeSaveEntities メソッドが一度呼び出される前に、すべてのエンティティに対して BeforeSaveEntity メソッドが呼び出される」と指定されていることを認識しています。また、私が持っている質問は、ドメイン固有の関係を持つ複数のエンティティに対するビジネス ルールの検証/適用に関するものであり、必ずしも単一のエンティティのプロパティを検証するわけではありません (そのため、ここで説明したようにカスタム検証が機能すると思います) 。
だから私の質問は:
- サーバーから検証エラーを返すにはどうすればよいですか? ビジネス ルールを適用したら、それらが失敗した場合、1 つ以上のエンティティに検証エラーを追加するにはどうすればよいですか?
- サーバー側のコードがどのビジネスルールを適用するかを「認識」できるように、ある種の検証コンテキストを渡すにはどうすればよいですか? 私のアプリケーションは、いくつかの異なる場所に新しい顧客を追加できます。アプリのコンテキストに基づいて、ビジネス ルールを適用するか、オプションにする必要があります。たとえば、明示的な「新規顧客の追加」画面と、「オンザフライ」で新しい顧客を作成できる「印刷チェック」画面がある場合 (この場合、より多くのルールをチェックする必要があります)。これは望ましい設計ではないかもしれませんが、要件です。顧客を作成できる場所は他にもほとんどありません....サーバー側では、ビジネスルールを適用する方法(および順序)を決定するために、この「コンテキスト」を取得しません...さらに、
ありがとうZ...