EF Core 2.1-处理并行异步方法上的连接

问题描述 投票:0回答:1

我在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。我遇到错误,因为连接被另一种方法关闭。

无效的操作。连接已关闭

什么是对此更好的方法?预先感谢。

ado.net ef-core-2.1
1个回答
0
投票

目前,我正在关闭连接。看起来不错。但是,如果您还有其他建议,请告诉我。

    public override void Dispose()
    {
        DbConnection connection = Database.GetDbConnection();
        if (connection.State != ConnectionState.Closed)
        {
            connection.Close();
        }
        base.Dispose();
    }
© www.soinside.com 2019 - 2024. All rights reserved.