首页 > 解决方案 > 带有实体框架的 Azure 函数超时

问题描述

我正在尝试创建一个基本的计时器函数,该函数使用实体框架将数据写入数据库,但是我得到了错误:

System.Data.SqlClient:已经有一个打开的 DataReader 与此命令关联,必须先关闭。

当我打电话时发生此错误context.SaveChanges();

标签: c#entity-frameworkazureazure-functions

解决方案


@thiccfire

Entity Framework 一次只支持每个上下文一个活动命令。

如果您仍在迭代另一个查询的结果集时执行查询,则可能会发生这种情况。虽然您没有提供代码示例,但不清楚发生在哪里。

可能导致这种情况的一件事是在迭代某些查询的结果时触发延迟加载。

这可以通过在连接字符串中允许 MultipleActiveResultSets=true 轻松解决。添加到连接字符串的提供者部分(其中指定了数据源、初始目录等)。

另一种方法是,您可以通过执行 .ToList() 在代码中具体化您的第一个查询,然后您可以将其用于进一步处理。

希望能帮助到你。


推荐阅读