質問: 私は.NET Core Dependency Injectionを使用して、アプリケーションの起動時に`SqlConnection`オブジェクトをインスタンス化しています。これをリポジトリに挿入する予定です。この`SqlConnection`は、Dapperによって、リポジトリ実装内のデータベースからデータを読み書きするために使用されます。 Dapperで`async`呼び出しを使用するつもりです。 問題は、 `SqlConnection`を一時的またはシングルトンとして注入する必要があるかどうかです。 Dapperが内部的にいくつかの独立したコンテナを実装していない限り、 `async`を使用したいと考えると、一時的な使用が考えられます。 Dapperの使用時にSqlConnectionオブジェクトの存続期間に関する推奨事項やベストプラクティスはありますか?私は行方不明の警告がありますか? 前もって感謝します。
回答: シングルトンとしてSQL接続を提供する場合、MARSを有効にしない限り、複数のリクエストを同時に処理することはできません。また、MARSには制限があります。ベストプラクティスは、一時的なSQL接続を使用し、適切に処理されていることを確認することです。 私のアプリケーションでは、カスタム`IDbConnectionFactory`をリポジトリに渡します。リポジトリは、 `using`ステートメントを使用して接続を作成するために使用されます。この場合、ヒープ上の割り当てを減らすためにリポジトリ自体をシングルトンにすることができます。