Entity Framework 시간 초과 문제 해결
연결 문자열 조정 후에도 EF(영구 엔터티 프레임워크) 시간 초과는 특히 상당한 데이터 세트로 작업할 때 흔히 발생하는 문제입니다. 이 문서에서는 연결 문자열의 CommandTimeout
설정이 유효하지 않은 알려진 문제를 해결합니다.
해결책: 직접 컨텍스트 구성
문제는 EF 연결 문자열의 Default Command Timeout
에 영향을 미치는 버그로 인해 발생합니다. 이 문제를 해결하려면 연결 문자열에서 Default Command Timeout
를 제거하고 데이터 컨텍스트 내에서 시간 제한을 명시적으로 설정하세요. 올바른 접근 방식은 EF 버전에 따라 다릅니다.
Entity Framework Core 1.0 이상:
<code class="language-csharp">this.context.Database.SetCommandTimeout(180);</code>
Entity Framework 6의 경우:
<code class="language-csharp">this.context.Database.CommandTimeout = 180;</code>
Entity Framework 5의 경우:
<code class="language-csharp">((IObjectContextAdapter)this.context).ObjectContext.CommandTimeout = 180;</code>
Entity Framework 4 이하의 경우:
<code class="language-csharp">this.context.CommandTimeout = 180;</code>
컨텍스트 개체에서 CommandTimeout
속성을 직접 설정하면 문제가 있는 연결 문자열 설정을 우회하고 EF가 장기 실행 작업을 올바르게 처리하도록 할 수 있습니다. 180
을 적절한 시간 초과 값(초)으로 바꾸는 것을 잊지 마세요.
최적의 시간 초과 찾기
실험이 핵심입니다. 더 높은 값(예: 180초)으로 시작하여 효율적인 쿼리 실행과 데이터 무결성 사이의 균형을 찾을 때까지 점진적으로 조정합니다. 예상치 못한 지연을 방지하려면 지나치게 높은 값을 피하세요.
위 내용은 연결 문자열 구성에도 불구하고 내 Entity Framework 명령이 여전히 시간 초과되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!