最近,我遇到了以下问题。我需要执行几个db语句,每个语句都使用自己的IDbConnection对象:
using (IDbConnection connection = _dbFactory.GetConnection())
{
// statement 1
}
...
using (IDbConnection connection = _dbFactory.GetConnection())
{
// statement 2
}
...
using (IDbConnection connection = _dbFactory.GetConnection())
{
// statement 3
}
要求是所有语句应在同一会话内执行,因为存在与会话相关的语句,例如get_lock()/release_lock()
,set XXX
等
当前,如果ADO.net池中有多个连接,则会出现问题,因为每个GetConnection()
调用都会返回随机连接。
我认为可以通过使用专门为此任务设置的单独连接池(通过将其他连接字符串与MaxPoolSize = 1
或其他方式配合使用)来解决。
足以保证在GetConnection()
个呼叫之间进行相同的会话吗?