Entity Framework 시간 초과: CommandTimeout을 올바르게 설정
EF(Entity Framework)를 사용할 때 함수 가져오기 시간 초과(30초 이상)가 발생하는 경우 명령 시간 초과를 올바르게 설정하는 단계를 이해하는 것이 중요합니다. 연결 문자열에 "Default Command Timeout=300000"을 추가하는 것은 간단하고 간단해 보일 수 있지만 일부 EF 버전에는 이 접근 방식에 알려진 버그가 있습니다.
이 문제를 해결하려면 저장소의 컨텍스트 개체에 직접 CommandTimeout을 수동으로 설정하세요. EF 4 이하에서는 this.context.CommandTimeout = 180;
을 사용하세요. EF 5에서는 ((IObjectContextAdapter)this.context).ObjectContext.CommandTimeout = 180;
을 사용합니다. EF 6에서는 this.context.Database.CommandTimeout = 180;
을 사용합니다. EF Core 1.0에서는 this.context.Database.SetCommandTimeout(180);
을 사용합니다.
CommandTimeout을 직접 설정하면 이 컨텍스트에서 실행되는 모든 쿼리에 시간 초과 값이 적용됩니다. 연결 문자열에 충돌하는 시간 초과 값을 설정하면 CommandTimeout을 수동으로 설정하는 데 방해가 될 수 있으므로 연결 문자열에서 시간 초과 값을 제거하는 것이 가장 좋습니다.
이러한 단계를 수행하면 대규모 데이터 세트를 처리할 때 EF가 시간 초과되는 것을 방지하고 대규모 데이터 검색 작업이 필요한 상황에서도 EF를 효율적으로 사용할 수 있습니다.
위 내용은 함수 가져오기 시간 초과를 방지하기 위해 Entity Framework에서 명령 시간 초과를 올바르게 설정하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!