2011-09-13 17 views
2

[Required]をエンティティクラスに追加すると、邪魔にならない検証がうまく動作します。MVC 3のクライアント側の検証まずデータベース

[Required]は、データベースの最初の(*。edmx)を使用してエンティティクラスを生成する場所には追加されません。私は私のEDMXを更新するとき

[Required] 
public int {get;set;} 

[Required]よう

私は手動で私のエンティティプロパティで[必須]を追加した場合、何かが削除されます。

私の質問は、EFでデータベースを最初に使用するとクライアント側の検証を実行する方法です。

答えて

3

エンティティの部分クラスを作成し、MetadataType属性を使用します。以下の例を参照してください。

[MetadataType(typeof(MyEntity.Metadata))] 
public partial class MyEntity 
{ 
    private sealed class Metadata 
    { 
     [Required(ErrorMessage = "* required")] 
     public string MyRequiredField { get; set; } 
    } 

    // Add other similar properties here... 
} 

このクラスは、デザイナーが生成したコードの変更の影響を受けません。

+0

ここでは、MyEntityはデータベースの最初の生成クラスです。[this](http://www.elevenwinds.com/data-validation-in-asp-net-mvc-database- first)も私を助けました – stom

0

これはado.netチームの質問です。データベース設計がアプリケーションロジックのマスターであるため、データベースの最初のEFを使用すると、ドメインモデルはデータベースの制約を継承すると思います。

関連する問題