Entity Framework クラス ビルダーを引き継ぐ方法はありますか? 私は独自のクラスビルダーを持ちたいので、いくつかのプロパティを作成して実体化時に他のメソッドを呼び出したり、エンティティクラスを部分的にしたりできます。
3 に答える
実際、それらはすでに部分クラスになっています。MSDNを参照
System.Data.Entity.Design.EntityClassGeneratorは、VSで.edmxファイルからオブジェクトレイヤーを生成するために使用されるタイプであり、EdmGen.exeが.csdlファイルからオブジェクトレイヤーを生成するために使用されるタイプです。以下に、生成されたコードに影響を与える3つの方法を示します。3番目のオプションでは、EntityClassGeneratorを自分で呼び出す必要があります。Sanjayによって提示されたこの手法を使用することにより、SingleFileGeneratorのようなVSでコードを自動的に実行することができます。
- 部分クラスを介して型にコードを追加する
- 生成されたクラスによって呼び出される部分メソッドにコードを追加します
- コード生成イベントをフックして、生成されたプロパティとタイプにコードを直接挿入します。例については、Dannyのブログ投稿を参照してください
独自のクラスの部分クラスを Entity Frameworkによって生成されたクラスに追加できるだけでなく、生成されたコードによって作成されたすべての部分メソッドを書き出すこともできます。
すなわち。呼び出される部分的なメソッド コードがたくさんありますが、生成されたコード内のメソッド自体は実際には実装されていません。そのために、プロパティが変更されたときにイベントをキャッチする部分メソッドを作成できます。一部のビジネス ルールを処理するのに、これはひどい方法ではありません。