微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

异常 - 使用 MYSql 服务器时出现“此 MySqlConnection 已在使用中”然而,同样的 Linq 查询适用于 MS SQL Server

如何解决异常 - 使用 MYSql 服务器时出现“此 MySqlConnection 已在使用中”然而,同样的 Linq 查询适用于 MS SQL Server

我正在使用 .NET Core 框架 (5.0) 开发质量保证应用程序。最初,我使用了 MS sql Server DB,它运行良好。但是,现在由于需求变化,我现在已经转移到 MysqL Server。

我已经使用代码优先的方法(实体框架)成功地集成了数据库。此外,我正在使用 NuGet 包 Pomelo.EntityFrameworkCore.MysqL 并且一切正常,除了下面提到的 Linq 查询我遇到异常 - 这个 MysqLConnection 已经在使用中强>.

public List<ErrorMessage> GetErrorMessage(int productId)
{
    List<ErrorMessage> localList = new List<ErrorMessage>();
    var product = _db.Products.Where(a => a.ProductId == productId).FirstOrDefault();
    if (product != null)
    {

        var products = _db.Products
            .Where(q => q.ProductName.ToLower() == product.ProductName.ToLower()).Select(e => e.ProductId);
        foreach (var item in products)
        {
            var errormessage = _db.ErrorMessageTracks.Where(q => q.ProductId == item).Select(e => e.ErrorMessage);
            foreach (var msg in errormessage)
            {
                if (!localList.Select(q => q.ErrorMessageId).Contains(msg.ErrorMessageId))
                {

                    localList.Add(msg);
                }
            }
        }

    }
    return localList;
}

我已经提到了其他类似的问题,但我无法解决这个问题,因为我不知道如何关闭 sql 连接,因为我使用的是 Linq Query 而不是实际的 sql Join。任何帮助将不胜感激!

解决方法

您可以在linq查询的末尾添加ToList(),应该可以解决问题:

var products = _db.Products.Where(q => q.ProductName.ToLower() == product.ProductName.ToLower())
                           .Select(e => e.ProductId).ToList();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?