2012-03-13 10 views
1

MVC3プロジェクトで作業していますSQL Server 2008でデータベースを作成した後、エンティティデータモデルを使用して追加しました。これで.edmxが生成されました。今までは安定しておらず、検証を行う以外はそれをする必要がないと感じています クラスのコードを生成せずに.edmxを使って検証を直接行う方法があるのだろうかと思っています。 サーバが必要ですおよびクライアント側の検証 乾杯edmxで属性を検証する

答えて

6

edmxからは実行できません。しかし、edmx生成クラスにメタデータを追加するクラスを持つことができます。

[MetadataTypeAttribute(typeof(CustomerMetadata))] 
public partial class Customer 
{ 
} 

、その後、あなたは、メタデータを持っているメタデータクラスの属性をしている:

internal sealed class CustomerMetadata 
{ 
    public int ID; 

    [Required] 
    [StringLength(60)] 
    public string Name; 
} 

編集

これはEDMXによって生成されたクラスにクラスを含むメタデータを追加します。 EFはすべてのクラスを部分として生成します。つまり、別のファイルの機能を同じクラスに追加できます。この機能を使用して、.netにメタデータ情報を持つクラスがあることを示す属性を追加します。この場合、Customerクラスのメタデータを持つクラスはCustomerMetadataです。

メタデータで装飾したいすべてのプロパティがあります。この場合、IDは実際にそこに存在する必要はありません。

+0

モデルフォルダにテーブルの同じ名前の部分クラスを追加する必要があり、MetadataTypeAttributeを使用して属性の検証を行います。私はうまくいくかどうかわからない。 – Yasminette

+0

もっと詳しい説明をするために投稿を更新した。 – linkerro

+0

完全に動作します。 –

0

(私はこれをコメントとして追加しましたが、評判のポイントはまだありません) 部分クラスの名前空間が、正しい大文字と小文字を含め、EF生成クラスの名前空間と正確に一致するようにしてください。

関連する問題