1

EF 4 エンティティ ダイアグラムから開始し、T4 テンプレートを使用して、ドメイン モデル内で使用できる POCO クラスを作成できます。生成されたコードは次のようになります。

public partial class Product
{
    public virtual int Id
    {
        get;
        set;
    }

    public virtual string Name
    {
        get;
        set;
    }
   //and so on
}

プロパティを実装するための独自のコードを追加するエレガントな方法はありますか? たとえば、すべての文字を下げることで実装したい名前セッター。私のコードが EF ダイアグラムから POCO クラスを繰り返し再生成することに抵抗することを望みます。

この要件は、検証コードを POCO クラスに追加するのと似ています。MetadataTypeこの問題は、別の検証クラスを作成し、属性を介して POCO にリンクすることで既に解決されています。その個別の検証クラスは、EF ダイアグラムから POCO を繰り返し再生成しても上書きされません。

ありがとう、

ルシアン

4

1 に答える 1

1

いいえ、それを行う簡単な方法はありません。再生成のたびに変更が削除されるため、生成されたコードには触れないでください。オプションは次のとおりです。

  • エンティティを自分で作成し、ジェネレーターを使用しない - エンティティ コードを完全に制御できます
  • ジェネレーターで T4 テンプレートを変更して、直接コードを追加するか (これは一般化するのが非常に難しい場合があります)、部分メソッドへの呼び出しを単純に追加します (ジェネレーターでこれらのメソッドも宣言する必要があります)。必要な部分メソッド。
于 2011-12-12T14:20:57.857 に答える