現在、webapi コントローラーで SaveChanges を呼び出すと、ビジネス ルールが満たされていない場合、エラー メッセージと共に例外がスローされます。これは悪い習慣であり、jQuery が処理できるように、error プロパティを何かに設定して返す必要があります。
問題は、SaveResult オブジェクトの error プロパティをどのように設定するかです。どうすればそのオブジェクトにアクセスできるのでしょうか?
現在、webapi コントローラーで SaveChanges を呼び出すと、ビジネス ルールが満たされていない場合、エラー メッセージと共に例外がスローされます。これは悪い習慣であり、jQuery が処理できるように、error プロパティを何かに設定して返す必要があります。
問題は、SaveResult オブジェクトの error プロパティをどのように設定するかです。どうすればそのオブジェクトにアクセスできるのでしょうか?
良い質問!実際には、今週後半または来週初めの次のリリースに向けてこれを変更している最中です。「新しい」動作は、SaveChanges 呼び出し中に発生するサーバー側の検証例外が、Breeze クライアントに 2 つの影響を与えることです。
1) 「失敗」プロミス (これは保存の失敗を表すため、SaveResult ではありません) が呼び出され、返されるエラーには、サーバーで発生したすべての検証エラーに関する情報を含む「serverErrors」コレクションが含まれます。エラーメッセージだけでなく、エラーが発生したエンティティとプロパティ (利用可能な場合) を含む完全なエラーの詳細を含む個別の json オブジェクトになります。
2) これらのエラーは、適切な entity.entityAspect の validationErrors コレクションに自動的に追加されるため、entityAspect.validationErrorsChanged 通知を使用する既存の UI は期待どおりに機能します。