1

DbContextデータベース ファースト(EF4.3.1 & MVC3)で検証はどのように機能しますか?

私はこれをやっています(はい、VBです):

If ModelState.IsValid Then
    db.SaveChanges()

しかし、次のメッセージがSaveChangesスローされます。DbEntityValidationException

1 つ以上のエンティティの検証に失敗しました。詳細については、「EntityValidationErrors」プロパティを参照してください。

適切な検証メッセージでビューが再び返されることを期待していますが、なぜそのように機能するのかがわからないため、何かが欠けていることは明らかです! Google が助けてくれることを期待するでしょうが、ほとんどの例はコード ファーストのようです。

これはデータベース ファーストなので、モデルが生成されています。検証制約も生成されることを期待していましたが (少なくとも SQL Server の NOT NULL のような単純なもの)、うまくいかないようです。

奇妙なことに、一部のフィールドは期待どおりに機能し、他のフィールドはそうではありません。

たとえば、データベースに null 非許容のテキスト フィールドがあります。EF デザイナーおよび生成されたコードでは、null 非許容として表示されます。しかし、送信すると、フィールドが強調表示されたフォームを返す代わりに例外が発生します。

一方、null 非許容の日付フィールドがあります。データベースを更新しようとする前にチェックされ、修正のためにフィールドが強調表示された状態でフォームが再度表示されます。

4

0 に答える 0