如何解决实体框架opendatareader问题

e0bqpujr  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(355)

获取此错误后:
mysqlexception:已经有一个与此连接关联的打开的datareader,必须先关闭它。
我无法请求或获取结果集,因为我正在查询,而ef还在懒洋洋地加载我以前请求的其他东西。
找到了许多可能的解决方案来解决这个问题,我在下面给出了答案。

ao218c7q

ao218c7q1#

如果在ef配置中没有提到类型加载,默认情况下ef将使用延迟加载。
有多种方法可以克服“连接是开放的问题”:
通过将mars添加到ef连接字符串中,请在跳转之前阅读此内容。
使用'using'语句,但为此,每次释放实体对象时都需要创建一个新的实体对象。
将结果转换为泛型类型或本地对象类型在我的例子中,我将其转换为tolist(),这有助于解决我的问题,并且我能够从上下文请求一个新的结果集。
我有一个基类,它为我提供了context对象,这就是为什么每次我想查询上下文时,我没有使用using语句来创建新的上下文。
随时编辑任何错误,仍然学习ef及其行为。

相关问题