2010-07-07 5 views
1

Entity Framework를 사용하여 응용 프로그램을 개발 중입니다.디버깅 할 때 SaveChanges가 호출되는 이유는 무엇입니까?

디버깅 모드에있을 때 SaveChanges 메서드를 누르지 않아도 디버깅을 종료하면 테스트 값이 데이터베이스에 저장됩니다.

왜 이런 일이 발생합니까?

나는 그것을 알아 내려고 4 시간 동안,하지만 행운 .... 내가 작업의 시작에 내 중단 점을 가지고 있고, 내가 바로 디버거를 종료하더라도

없었다 - 데이터가 여전히 지속합니다. ..

+0

코드에 버그가 있습니다. 'SavingChanges'를 처리하고 거기에 중단 점을 놓고 중지 할 때 호출 스택을 봅니다. –

+0

내가 뭘 찾아야 하나? – Alex

+0

호출 스택에서'SaveChanges'가 호출 된 것을 찾습니다. –

답변

0

글쎄, 디버거가 중단 점에있을 때도 코드 실행을 계속하고 내 코드에 오류가없는 경우 데이터베이스에 변경 사항이 적용됩니다. 이를 방지하기 위해

하나의 방법 -이 같은 코드에 처리기를 추가하는 것입니다

#if !DEBUG 
     context.SaveChanges(); 
#endif 

내가 SavingChanges 방법을 통해 추적 할 수 없습니다, 내가 거기 찾아야 정말로 확실하지 않다으로, 이렇게 많은 다른 것이 있고, 나는 그것에 매달릴 충분한 시간이 없었다.

관련 문제