c# - 带有实体框架的 Azure 函数超时
问题描述
我正在尝试创建一个基本的计时器函数,该函数使用实体框架将数据写入数据库,但是我得到了错误:
System.Data.SqlClient:已经有一个打开的 DataReader 与此命令关联,必须先关闭。
当我打电话时发生此错误context.SaveChanges();
解决方案
@thiccfire
Entity Framework 一次只支持每个上下文一个活动命令。
如果您仍在迭代另一个查询的结果集时执行查询,则可能会发生这种情况。虽然您没有提供代码示例,但不清楚发生在哪里。
可能导致这种情况的一件事是在迭代某些查询的结果时触发延迟加载。
这可以通过在连接字符串中允许 MultipleActiveResultSets=true 轻松解决。添加到连接字符串的提供者部分(其中指定了数据源、初始目录等)。
另一种方法是,您可以通过执行 .ToList() 在代码中具体化您的第一个查询,然后您可以将其用于进一步处理。
希望能帮助到你。
推荐阅读
- python - 带有 aiohttp 持久会话的 RuntimeError
- c# - PSobject 输出到控制台
- android - 在 ArrayList Retrofit android 中解析 LinkedTreeMap
- css - 全角元素破坏了使用 display: grid 创建的布局
- python - 如何使用多处理启动一个单独的新 Tk() 窗口?
- javascript - 无论如何通过chrome注入可变元素?
- javascript - 从剪贴板粘贴日期输入 type="datetime-local"
- unity3d - 使用 Vuforia、Unity 和 Zxing 的 QR 码阅读器
- java - Minheapify 方法
- python - 如何在 python 中为来自远程 XBee 的传感器数据添加变量名?