我在DbContext中有多个异步方法来调用存储过程。所有这些方法都按如下方式处理连接。
DbConnection connection = this.Database.GetDbConnection();
bool needClose = false;
if (connection.State != ConnectionState.Open)
{
connection.OpenAsync();
needClose = true;
}
}
try {}
finally
{
if (needClose)
connection.Close();
}
我正在并行调用其中一些方法。我的连接字符串具有MultipleActiveResultSets = True。我遇到错误,因为连接被另一种方法关闭。
无效的操作。连接已关闭
什么是对此更好的方法?预先感谢。
目前,我正在关闭连接。看起来不错。但是,如果您还有其他建议,请告诉我。
public override void Dispose()
{
DbConnection connection = Database.GetDbConnection();
if (connection.State != ConnectionState.Closed)
{
connection.Close();
}
base.Dispose();
}