1

EF 5 にアップグレードした後Validation failed for one or more entities. See 'EntityValidationErrors' property for more details'、コードの特定のインスタンスにアクセスし続けます。

データベースに NVARCHAR ヌル可能であるフィールドがあり、部分クラスのデータ注釈で [必須] とマークされていることがわかりました。問題のフィールドは、プログラムで null に設定されています。これは、データベース モデル (NVARCHAR nullable) に対して検証されたため、EF4 で正常に機能しました。

他のインスタンスでもユーザー入力を受け取るため、そのフィールドを [必須] としてマークしておく必要があります。

私のオプションは何ですか?直前の属性/検証エラーを無視できますSaveChanges()か?

4

1 に答える 1

4

このため、エンティティをビューに直接渡すのではなく、ビューモデルを使用することを強くお勧めします。ビューとデータモデルには異なる要件があり、検証で同じモデルを使用しようとすると問題が発生します。

代わりに、データモデルから必要な属性を削除し、必要な属性を持つビューモデルを作成してから、AutoMapperなどを使用してそれらの間をマッピングします。

于 2012-09-09T19:14:59.547 に答える