我正在尝试创建一个基本的计时器函数,使用Entity Framework将数据写入数据库,但是我收到错误:
System.Data.SqlClient:已经有一个与此命令关联的打开的DataReader,必须先关闭它。
当我调用context.SaveChanges();
时会发生此错误
@thiccfire
实体框架一次只支持每个上下文一个活动命令。
如果在仍在从另一个查询迭代结果集时执行查询,则会发生这种情况。虽然您还没有提供代码示例,但不清楚这是从哪里发生的。
导致这种情况的一件事是在迭代某些查询的结果时触发了延迟加载。
通过在连接字符串中允许MultipleActiveResultSets = true可以轻松解决这个问题。添加到连接字符串的提供程序部分(指定数据源,初始目录等)。
另一种方法是,您可以通过.ToList()实现代码中的第一个查询,然后您可以使用它进行进一步处理。
希望能帮助到你。