0

最初に EF5 コードを使用してデータベースを初期化するときに、エンティティで RequiredIf 属性を使用すると、次のエラーが発生します。

System.Data.DataException: An exception occurred while initializing the database. 
See the InnerException for details. ---> System.Data.Entity.Validation.DbEntityValidationException:
Validation failed for one or more entities. See 'EntityValidationErrors' property for more details. 

[RequiredIf] 属性コードをコメントすると、最初にデータベースが正常に構築されます。何か案が?

ここに画像の説明を入力

アップデート:

デバッガーをステップ実行すると、検証エラーが追加されていることがわかりました。最初にコードを使用してデータベースを初期化するときに、これをオフにするにはどうすればよいですか。

ここに画像の説明を入力

ここに画像の説明を入力

4

1 に答える 1

0

問題は播種中に発生していました。requiredIf 検証は、ApplicationStatusが推奨されているかどうか、つまり 2 の場合DecisionDateは必須であると示しています。したがってDecisionDate、コンテキストのシード関数にプロパティを追加すると、機能しました。とにかく問題を見てくれてありがとう。

学んだ教訓は、ドメインオブジェクトに検証を入れてから、それに応じてデータをシードすることです。

ここに画像の説明を入力

于 2013-02-27T23:15:10.533 に答える