我一直在尝试将MySQL与Entity Framework 6结合使用。我有几个项目成功使用SQL Server Express而没有问题。新项目基于之前的项目,我需要一些小的改动来连接和播种EF数据库。我现在遇到的问题是,在SQL Server上运行正常的简单查询在使用MySQL时会引发异常。
涉及两个表/实体。 Device
表示收集数据样本的物理设备。 Monitor
是要采样的数据类型的定义。因此,为每个设备定义了多个监视器。一旦我尝试检索设备的监视器列表,它就会引发以下错误:
MySql.Data.MySqlClient.MySqlException: There is already an open DataReader associated with this Connection which must be closed first.
以下是代码:
using (var context = new ApplicationDbContext())
{
foreach (var device in context.Devices)
{
var monitors = device.Monitors.Where(m => m.Enabled == true).ToList();
if (monitors.Count > 0)
{
// Get sampled data from device
}
}
}
我猜这是关于EF实现的MySQL驱动程序问题。任何人有任何想法如何纠正或解决它?我做的事情真的很愚蠢而且显而易见,我只是没有看到?我在SQL Server实现中一直使用这些相同的模式来访问相关实体。因此,我担心这将成为使用MySQL的一个显示阻止,至少使用内置驱动程序。
一些相关信息:
.NET:4.5.2
EF:6
MySQL:5.7
MySqlClient:6.9.11.0