2017-12-04 1 views
3

현재 .net Core 2 프로젝트 (EFCore 2.01)에서 NUnit을 사용하는 통합 테스트를위한 기본 클래스가 있습니다. 이 프로젝트에서 우리는 설정에 대한 트랜잭션을 생성하고 테스트를 분리하기 위해 풀다운시 롤백을 수행합니다. 내 대학의프로세스가 종료 된 경우 EFCore 트랜잭션 롤백 동작

public class BaseTestsWithRollbackPerTest : BaseTests 
{ 
    [SetUp] 
    public void Setup() 
    { 
     this.Transaction = this.ApplicationContext.Database.BeginTransaction(); 
    } 

    [TearDown] 
    public void TearDown() 
    { 
     this.Transaction.Rollback(); 
    } 
} 

하나는 시험을 중지 또는 등 자신의 PC/VS2017의 중단을 차단 내가 확인했다

데이터베이스 및 XACT_ABORT 누군가가 수도 경우 우리가 느린 거래를 할 수 있습니다 우려를 제기 스위치가 꺼져 있고 이것은 오랜 기존 데이터베이스이므로 설정을 변경할 수 없을 수도 있습니다.

제 질문은 이것과 함께 EFCore의 표준 프로세스는 무엇입니까? 거래를 중단하거나 계속 진행할 것입니까? 내가 찾지 못한 설정이 있습니까? 어떤 도움이라도 대단히 감사하겠습니다.

+0

ADO.NET과 다르지 않습니다. –

+0

@IvanStoev 멋진 Google 검색을 지금 확장하십시오. –

답변

1

트랜잭션이 커밋되지 않으면 트랜잭션이 시간 초과되고 SQLServer가 롤백을 수행합니다. SQLServer는 EF가 아니라 이것을 처리합니다.