ビジネス オブジェクトで検証を使用する方法を理解しようとしています。
これまで、1 つのエラーのみをチェックするCustomValidatorの例しか見たことがありません。3 つ以上のエラーをチェックする必要がある DateTime 入力を持つ 2 つのフィールドがあります。私は通常、クライアントでチェックし、次にサーバーでチェックし、最後にデータベースレベルでチェックする必要があると思います。
- フィールドでエラーが発生した場合、フィールドを離れることはできません。
- クライアント検証では、これは単なるユーザー エラーであるため、例外を引き起こすエラーではありません。ただし、何か問題が発生し、ユーザーがクライアント検証をバイパスした場合、サーバー検証は例外を開始する必要があります。
- 最後に、バッチ更新などの他の作業がある場合は、データベース検証コードを使用する必要があります。基本的なことを見逃している場合は、修正してください。
- `dateFrom` は空ではありません。(ただし、「dateTo」は空にすることができます)
- `dateFrom` は `dateTo` より前です
- `dateFrom` と `dateTo` は定数 `MinDate` と `MaxDate` 内にあります
では、検証はクライアント、サーバー、データベースのように見えるべきですか?
感想:
検証ロジックを 3 つの異なる場所に分ける必要があります。UI、コード、DataObject(データベース)? まったく同じコードの場合は? 冗長に見えますか?
3 つのチェックすべてに同じ検証方法を使用できますか? または、3 つのコード チャンクとそれぞれに 3 つのメソッドを実装する必要がありますか?