質問: Dapperは、接続が使用されているときに暗黙的に接続が開かれることを期待しています。なぜそれはそれを開いたり閉じたりしないのですか?これは単に接続管理ですか? 私は共同作業者であり、接続プーリングを使用して背後にあるものの性質について往復していて、複数のコマンド間で接続を開いたり、接続を開いたり閉じたりすることに何らかの利点がある場合各コマンドについて。
回答: Dapperはこれを内部的に扱います(かなりの時間)。それはちょうどworksâ "¢ 元の(古い)回答: あなたは間違っていません。私がこの不便さに気付かなかった理由は、従来の理由(具体的にはLINQ-to-SQLのみを使用していました)の主な接続のようなものが`DataContext`なので、dapperメソッドを拡張メソッドとして再公開します`DataContext` 。 愚かなことです:これらの方法は何ですか: ``` using(db.Connection.EnsureOpen()) { db.Connection.{the dapper method} } ``` ここでEnsureOpenは、次のようなすばらしいメソッドです。 * 接続が開いている場合はnullを返します。 * それ以外の場合は、接続を開き、完了したら接続を閉じるIDisposableトークンを返します だから私たちは明らか*に*あなたの痛みを*正確*に感じましたが、私たちはそれをさらに上に実装しました。 機能リクエストとしてこれを記録してください。私*は*すべてのコードを用意しています(バッファされていないデータの "リーダー"に合わせるために少し修正する必要があります)。これはdapperが所有権を取ることはできません。