.SaveChanges() 메서드는 EntityFramework내에서 데이터 컨텍스트 개체를 사용할 때 데이터 변경사항을 저장해 주는 것인데,
저장하기 위해 언제 호출하는 것이 가장 좋은것인가에 대해 적어본다.

Linq를 쓰던 뭘하던, foreach 루프를 통하여, 데이터를 채우고 난 후, 데이터를 저장하기 마련인데, 몇가지 시나리오가 있다.

1. .SaveChanges() foreach 루프 (예: 외부 루프) 끝에 한 번
- OutOfMemory 오류 약 1/3 방식 (30,000 정도씩 90,000개 저장)

2. .SaveChanges() 루프 한 번씩 매개 변수 없이
- 잘 작동하지만 영원히~ (90,000 저장, 8시간 걸림)

3. .SaveChanges(SaveChangesOption.Batch) foreach 루프 끝에 한 번 호출
-
1번 케이스와 동일하게 OutOfMemory

4. .SaveChanges(SaveChangesOption.Batch) 루프 한 번씩 호출
- 404 오류

5. .SaveChanges(SaveChangesOption.Batch) 10 루프마다 한 번씩 호출
- 400 잘못된 요청 오류(때때로) 이후 iterations OutOfMemory

'Language > ADO.NET' 카테고리의 다른 글

DbProviderFactory  (0) 2016.08.20

+ Recent posts