2010-06-04 3 views
2

질문 하나 : 이유는 코드가 약 8 초 여러 SubmitChanges

하지만 이후 완료

for (int i = 0; i < 10000; i++) 
    { 
     Entity e = new Entity(); 
     e.DisplayValue = i.ToString(); 
     ctx.Entities.InsertOnSubmit(e); 
    } 
    ctx.SubmitChanges(); 

다음 사용할 때이 코드를 사용할 때

for (int i = 0; i < 10000; i++) 
    { 
     Entity e = new Entity(); 
     e.DisplayValue = i.ToString(); 
     ctx.Entities.InsertOnSubmit(e); 
     ctx.SubmitChanges(); 
    } 

을 약 50 초 후에 끝납니다.

faser second exa 그것이 나를 위해 더 situable하기 때문에, mple?

답변

2

SubmitChanges를 호출 할 때마다 Linq-to-Sql은 모든 객체에서 추적 된 변경 사항을 확인하므로 변경 사항을 1 객체로 변경 한 다음 동일한 변경 사항을 10000 번 반복하고 SubmitChanges를 호출하면 기하 급수적으로 소요 시간이 증가합니다. 매번 추가 항목을 추가하기 때문에 Linq-to-SQL이 변경 사항을 처리합니다.

관련 문제