既存のレガシー データベースで EF Database First を使用しています。データベースではほとんどすべてのフィールドに maxlength 値があり、この値は .edmx ファイルで確認できます。
たとえば、フィールドのCCSTATUS
はnvarchar(20)
です。ユーザーが 20 文字を超える文字を入力すると、 はクリアされますが、 onModelState.IsValid
がスローされます。DbEntityValidationException
db.SaveChanges()
DataAnnotations を追加したプロパティの場合、検証に失敗すると、モデル エラーが追加され、ユーザーに表示されて修正できるようになります。Model MetaData クラスのすべてのプロパティに属性を追加できることは承知していますが、値がプロパティの最大長よりも大きい場合[MaxLength(n)]
にスローする代わりに、EF にモデル エラーを追加させる方法はありますか?DbEntityValidationException
編集
回答ありがとうございます。最終的に、EF Power Toolsのリバース エンジニアリング Code First 機能を使用して、データベースから Code First モデルを生成しました。これには、適切な maxlength 属性とその他の必要な注釈が含まれていました。