Entity Framework の新機能を体験するために、新しい MVC 4 インターネット アプリケーションを作成しました。
これを既存のデータベースに接続し、dbContext ジェネレーターで Model クラスを生成しました。
アプリケーションを実行すると、フォームの編集中にいくつかの検証エラーが発生しました。DateTime フィールドの例として、日付が 2012-10-12 ではなく "12/10/2012" として挿入された場合 (SQ サーバー表記のように)、システムはエラーを出していました。
プロジェクトで検証コードを見つけようとしましたが、生成されたコードのどこにも見つかりませんでした。
私のモデルクラスの1つは次のとおりです。
public partial class Artist
{
public Artist()
{
}
public int Id { get; set; }
public string Name { get; set; }
public Nullable<System.DateTime> DateOfBirth { get; set; }
public virtual Countries Countries { get; set; }
}
データベース ファースト アプローチを使用する場合、検証エラーをカスタマイズするにはどうすればよいですか?
検証属性でモデルを装飾すると、モデル クラスが再度生成されると、モデルは消去されます。
さらに、既存のデータベースの使用が必須である「現実世界」のプロジェクトでは、モデル クラスを開発するための最良のアプローチは何でしょうか?
同じ名前の部分クラスを追加して自動生成されたクラスを拡張しますか?
編集 (ビューの導入部分):
@using (Html.BeginForm()) {
@Html.ValidationSummary(false)
<fieldset>
<legend>Movie</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.DateOfBirth)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.DateOfBirth)
@Html.ValidationMessageFor(model => model.DateOfBirth)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}