質問: 私のasp.netコアプロジェクトでは、私は`ReadingContext`から派生した`ReadingContext`クラスを`DbContext`ます。文書によると`OnConfiguring`のすべてのインスタンスに対して呼び出されるべき`DbContext`作成されます。 しかし、私の場合は、デバッグ中にインスタンスを検査するときだけ呼び出されます。 `OnConfiguring`中にブレークポイントがありますが、メソッドが呼び出されてもヒットしません。 OnConfiguringメソッド。 ![OnConfiguringメソッド](https://i.stack.imgur.com/dgTc5.png) 。 インスタンスが作成されましたが、 `OnConfiguring`はまだ呼び出されていません![インスタンスが作成されました](https://i.stack.imgur.com/ZBL8B.png) 。 OnConfiguringはオブジェクトを調べるために呼び出されましたが、ブレークポイントはヒットしませんでした。 ![OnConfiguringが呼び出されました](https://i.stack.imgur.com/cDu8z.png)
回答: > OnConfiguringは、作成されたDbContextのすべてのインスタンスに対して呼び出される必要があります。 > > あなたが参照しているドキュメントはわかりませんが、コンテキストの作成*時に* `OnConfiguring`が実行されているとは言えません。それはしないので。コンテキストインスタンスが実際に初めて*使用さ*れるたびに実行*さ*れます。そのため、デバッグビューでコンテキストを調べ始めるとすぐにメソッド呼び出しが表示されます。デバッガでブレークポイントを一時停止すると、コードがヒットしたときでも、デバッガは別のブレークポイントにジャンプしません。 コンテキストは多数生成され、配置されるはずです。したがって、コンテキストを作成するには、できるだけ軽量でなければなりません。内部コンポーネントは、できるだけ遅延初期化によって作成されます。