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