2008-09-02 15 views
1

Entity Frameworkクラスビルダを引き継ぐ方法はありますか?私は自分のクラスビルダーを持つことができるように、私はいくつかのプロパティを作成して、マテリアライゼーション時に他のメソッドを呼び出したり、エンティティクラスを部分的にすることができます。Entity Frameworkクラスをカスタマイズする方法は?

答えて

3

実際にはすでに部分クラスになっています。参照してくださいMSDN

私だけでなく、あなたがあなた自身のクラスにタックできることを追加します
0

部分クラスEntity Frameworkのから放出されたものにていますが、生成されたコードによって作成されたすべての部分メソッドを書き出すことができます。

IE。呼び出される部分メソッドコードはたくさんありますが、生成されたコードのメソッド自体は実際には実装されていません。そのために、プロパティが変更されたときにイベントを捕捉するための部分的なメソッドを書くことができます。いくつかのビジネスルールを扱うのはひどい方法ではありません。

2

System.Data.Entity.Design.EntityClassGeneratorは.edmxファイルからオブジェクトレイヤーを生成するためにVSで使用されるタイプで、EdmGen.exeが.csdlファイルからオブジェクトレイヤーを生成するために使用するタイプです。以下に、生成されたコードに影響を及ぼす3つの方法を示します。 3番目のオプションでは、EntityClassGeneratorを自分で呼び出す必要があります。あなたのコードは、Sanjayによって提出されたusing this techniqueによってSingleFileGeneratorのようなVSソートで自動的に実行されます。

  1. 直接にコードを注入するコード生成イベントフック生成クラス
  2. によって呼び出される部分方法にコードを追加し部分クラス
  3. 介しタイプにコードを追加プロパティとタイプが生成されます。例については、Dannyのblog postを参照してください。
関連する問題