首页 > 后端开发 > C++ > 为什么Entity Framework投掷'已经有一个与此命令相关联的开放数据标准器,必须首先关闭”?

为什么Entity Framework投掷'已经有一个与此命令相关联的开放数据标准器,必须首先关闭”?

DDD
发布: 2025-01-29 21:56:09
原创
381 人浏览过

Why Does Entity Framework Throw

> 实体框架的“打开dataReader”错误:一个常见的陷阱

>

现代实体框架简化了数据库的交互,但是“已经有一个与此命令关联的开放数据标准器,必须首先关闭”仍然是一个频繁的头痛。 本文解释了根本原因并提供了解决方案。

考虑以下方案:查询检索帐户数据,然后执行进一步的处理:>

如下所示,

<code class="language-csharp">var accounts = from account in context.Accounts
               from guranteer in account.Gurantors
               select new AccountsReport
               {
                   CreditRegistryId = account.CreditRegistryId,
                   AccountNumber = account.AccountNo,
                   DateOpened = account.DateOpened,
               };

return accounts.AsEnumerable()
                .Select((account, index) => new AccountsReport()
                    {
                        RecordNumber = FormattedRowNumber(account, index + 1),
                        CreditRegistryId = account.CreditRegistryId,
                        DateLastUpdated = DateLastUpdated(account.CreditRegistryId, account.AccountNumber),
                        AccountNumber = FormattedAccountNumber(account.AccountType, account.AccountNumber)
                    })
                .OrderBy(c=>c.FormattedRecordNumber)
                .ThenByDescending(c => c.StateChangeDate);</code>
登录后复制
方法添加了另一个数据库查询:

DateLastUpdated问题? 主查询打开A

<code class="language-csharp">public DateTime DateLastUpdated(long creditorRegistryId, string accountNo)
{
    return (from h in context.AccountHistory
            where h.CreditorRegistryId == creditorRegistryId && h.AccountNo == accountNo
            select h.LastUpdated).Max();
}</code>
登录后复制
打开另一个

,而不会关闭第一个DataReader,导致错误。DateLastUpdated> >解决方案:多个活动结果集(MARS)

> 最简单的解决方案是在连接字符串中启用多个活动结果集(火星):

MARS允许数据库同时处理多个开放光标,从而防止冲突并解决“打开数据标准”错误。 这避免了需要手动

封闭的需要,简化了您的代码。

>

以上是为什么Entity Framework投掷'已经有一个与此命令相关联的开放数据标准器,必须首先关闭”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板