NerdDinnerの例では、モデルのデータを検証する一連のビジネス ルールが記述されています。空の文字列のようなものがチェックされ、 modelObject.GetRuleViolations() を呼び出すことでそれらすべてを取得できます。しかし、データベースである検証の別のレイヤーがあります。たとえば、datetime フィールドは、DateTime オブジェクトに変換できる文字列のみを受け入れるデータベースへの検証のために残されます。
私が見る問題は、modelObject.GetRuleViolations() が datetime の違反を返さないことです。したがって、レコードの保存が正しく防止され、フォームが表示されてエラーが発生し、日時フィールドが強調表示されている場合でも、特定のエラー メッセージは表示されません。ビジネス ルールの検証エラーの中でデータベースの検証エラーを取得する方法はありますか?