> 백엔드 개발 > C++ > 엔티티 프레임 워크가 왜 '이 명령과 관련된 개방형 데이터 레더가 이미 있으며, 먼저 닫아야하는이 명령과 관련이 있습니까?'

엔티티 프레임 워크가 왜 '이 명령과 관련된 개방형 데이터 레더가 이미 있으며, 먼저 닫아야하는이 명령과 관련이 있습니까?'

DDD
풀어 주다: 2025-01-29 21:56:09
원래의
381명이 탐색했습니다.

Why Does Entity Framework Throw 엔티티 프레임 워크의 "오픈 데이터 드레더"오류 : 일반적인 함정

최신 엔티티 프레임 워크는 데이터베이스 상호 작용을 단순화하지만 오류는 "이미이 명령과 관련된 열린 DataReader가 이미 있습니다. 이 기사는 근본 원인을 설명하고 해결책을 제공합니다. 이 시나리오를 고려하십시오 : 쿼리는 계정 데이터를 검색 한 다음 추가 처리를 수행합니다.

아래에 표시된 메소드는 다른 데이터베이스 쿼리를 추가합니다 :

문제? 기본 쿼리는 a

를 엽니 다. 는 첫 번째 를 닫지 않고 다른

를 엽니 다. 오류가 발생한다. 솔루션 : 다중 활성 결과 세트 (mars)

가장 간단한 수정은 연결 문자열에서 여러 활성 결과 세트 (MARS)를 활성화하는 것입니다.

화성을 사용하면 데이터베이스가 여러 개의 열린 커서를 동시에 처리 할 수있어 충돌을 방지하고 "열린 데이터 레더"오류를 해결할 수 있습니다. 이렇게하면 수동
<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>
로그인 후 복사
폐쇄가 필요하지 않아 코드를 단순화합니다.

위 내용은 엔티티 프레임 워크가 왜 '이 명령과 관련된 개방형 데이터 레더가 이미 있으며, 먼저 닫아야하는이 명령과 관련이 있습니까?'의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿