Entity Framework 4.3.1을 사용하여 1,000 개의 고유 테이블 행을 병렬로 병렬로 삽입, 업데이트, 삭제할 수 있습니까?Entity Framework 4.3.1에서 병렬 삽입, 업데이트, 삭제
어떨까요? 병렬 프레임 워크 작업? 실? 다른 것?
Entity Framework 4.3.1을 사용하여 1,000 개의 고유 테이블 행을 병렬로 병렬로 삽입, 업데이트, 삭제할 수 있습니까?Entity Framework 4.3.1에서 병렬 삽입, 업데이트, 삭제
어떨까요? 병렬 프레임 워크 작업? 실? 다른 것?
TPL을 사용하면이 작업을 수행 할 수 있지만 EF는 의심 스럽습니다. ADO.NET을 사용하면 해당 호출이 동일한 행 (업데이트 가능성이 높은 경우)에 대해 수행되는 경우 CommandText가 각 호출마다 고유해야합니다. 따라서 업데이트 당 새 연결을 만들어 닫아야 할 수도 있습니다. 연결 풀을 사용하는 것은 선택 쿼리에 대해서만 의미가 있습니다. 다른 스레드가 동일한 작업을 수행 할 때 다른 스레드가 동일한 테이블을 업데이트하게하고 싶지는 않습니다. 삽입물은 문제가되지 않습니다. 삭제가 어떻게 될지 나는 알지 못합니다. 행이 이미 삭제 된 경우 무언가를 반환하고 사용하지 않으면 아무 일도 일어나지 않습니다.
당신이 할 수있는 일은 컬렉션에 항목을 복사하고 (기존 항목을 삭제할 수있는 업데이트) 대량 삽입을하는 것입니다.
알아 내기 위해 테스트해야합니다!
dbContext는 threadsafe가 아니기 때문에 나는 풀을 만들고 풀에서 작업을 실행합니다. 나머지는 데이터베이스, 트랜잭션 수준 및 관련 테이블에 따라 다릅니다. –