Dapper 隐式地期望连接在使用时打开。为什么它不自己打开和关闭?这不是简单的连接管理吗?
我问这个问题是因为我和一位同事一直在反复探讨连接池幕后发生的事情的本质,以及在多个命令中保持连接打开或打开和关闭连接是否有任何好处对于每个命令。
Dapper 现在(并且在相当长的一段时间内)在内部处理这个问题。它只是有效™
原始(过时)答案:
你没有错。我没有注意到这种不便的原因是,由于遗留原因(具体来说:我们过去专门使用 LINQ-to-SQL),我们主要的类似连接的东西是DataContext
- 所以我们将简洁的方法重新公开为扩展方法DataContext
.
愚蠢的是:这些方法的作用是:
using(db.Connection.EnsureOpen()) {
db.Connection.{the dapper method}
}
这里 EnsureOpen 是一个厚颜无耻的方法:
- 如果连接打开,则返回 null
- 否则,它打开连接,并返回一个 IDisposable 令牌,完成后关闭连接
所以:我们明显感觉到exactly你的痛苦,但我们将它进一步实现了。
请将其记录为功能请求。我们have所有代码(尽管我需要稍微调整它以适应非缓冲数据的“阅读器”) - 绝对没有理由说 dapper 不能拥有它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)