2011-05-11 7 views
3

注:私はASP.NetアプリケーションではなくMVC [ので何の検証属性がサポートされていません]Entity FrameworkのデータベースまずPOCO T4生成と検証

を使用しています私は、データベースの最初のアプローチを使用して、POCOを使用して、私のPOCOクラスを生成t4テンプレート。生成されたPOCOクラスを独自のライブラリ(Domain.Model)に移動しました。

ここで、エンタープライズライブラリ5を使用してPOCOクラスに検証を注入したいと思います。どのようにすればいいですか? UIで検証を実行するのではなく、生成されたPOCOクラスを変更せずに、Enterprise Libraryを使用して検証属性をPOCOクラスに追加する必要があります。私がそれを変更すると、新しいクラスを生成するたびにすべての変更が失われます。したがって、POCOクラスの外部で検証を実行したいが、属性を使用したいそれはあなたが望む任意の属性を使用できるようになりますか、T4を変更する必要があります -

希望は私はあなたがどちらかPOCO発生器をあきらめて、手動で自分をクラスを作成する必要がありますそのような場合には

+0

エンタープライズライブラリでクラスを生成し、独自のt4テンプルを使用して検証を追加し、新しいクラスを生成することができます。古いものを削除するより – Stecya

+0

@Stecya - エンタープライズライブラリでクラスを生成しますか?あなたはより詳細な手順を指示してくださいできますか? – DotNetInfo

+0

申し訳ありませんが、私はPOCO t4テンプレートを使用して生成することを意味します – Stecya

答えて

1

ことはできません何かを求めていないのですあなたのために属性を追加するテンプレート。 T4テンプレートを変更するには、メタデータの情報を使用して正しい属性を設定するか、structural annotationsを使用して、XMLとして開いたEDMXで属性を手動で定義する必要があります。私は構造的な注釈hereについて説明しましたが、その例はあなたの問題に関係していません。

+0

あなたの返信ありがとうございます。うん、そう思った。私はt4テンプレートを変更するオプションを選択せず​​、クラスを手動で作成します。 DbContext(DbContextコードジェネレータ)からDbContextを生成するためにコードファーストアプローチを使用するか、DbContextからMyContextを実装してDbSetsを作成するだけです。私は何か不足していますか?私はあなたがEFの質問にたくさん答えているのを見て、あなたから最高の答えを得ることができます – DotNetInfo

関連する問題