Entity Framework などの O/RM で使用される「Context Per Request」パターンのように、データベースを開いIDbConnection
て現在のリクエストで呼び出されたすべてのメソッドで使用し、DI コンテナーがそれを で破棄できるようにしても問題ありませんか?Application_EndRequest
または、各メソッドで接続を開いたり閉じたりする必要がありますか?
Entity Framework などの O/RM で使用される「Context Per Request」パターンのように、データベースを開いIDbConnection
て現在のリクエストで呼び出されたすべてのメソッドで使用し、DI コンテナーがそれを で破棄できるようにしても問題ありませんか?Application_EndRequest
または、各メソッドで接続を開いたり閉じたりする必要がありますか?
リクエストで接続を作成し、ページのアンロードイベントがトリガーされたときにそれを破棄することをお勧めします。そのようにして、不要なリソースを処分します。
この方法に従う必要があります:-
Page_PreInit をオーバーライドします。接続を初期化して開き、新しいトランザクションを開始します。
Page_Load をオーバーライド: データベースを読み取り、コレクションを作成します。
Page_Unload をオーバーライド: トランザクションをコミット/ロールバックし、接続を閉じます。
Dispose のオーバーライド: IDisposable を実装し、基本オブジェクトを破棄します。