대량 삽입/업데이트/삭제 작업시 Entity Framework의 속도가 매우 느릴 수 있습니다. AutoDetectChanges 및/또는 ValidateOnSaveEnabled를 해제하기 위해 자주 제안되는 비틀기조차 항상 도움이되는 것은 아닙니다.Z.EntityFramework.Extensions의 비상업적 인 대안이 있습니까?
나는 NuGet의 Z.EntityFramework.Extensions를 보았지만 일정 기간 동안 만 작동하는 상용 제품인 것으로 보입니다.
https://www.nuget.org/packages/Z.EntityFramework.Extensions/
지금까지, 정말에만 BulkInsert(), BulkUpdate()와 BulkDelete()가 필요합니다.
내 질문은 : Z.EntityFramework.Extensions로 거의 동일한 작업을 수행 신뢰할 수있는 모든 비상업적 라이브러리는
있습니까?
어떤 힌트를 주셔서 감사합니다!
배치 업데이트 및 사용할 수있는 HTTPS 삭제 : // GitHub의를 .com/loresoft/EntityFramework.Extended. 일괄 삽입의 경우 - 100 개의 엔티티마다 새로운 컨텍스트를 만듭니다. 따라서 컨텍스트를 만들고 100 개를 삽입하고 변경 사항을 저장하십시오. 그런 다음 새 트랜잭션을 생성하고 다음 100 개를 삽입하고 변경 사항을 저장합니다. 삽입 배치는 아니지만 동일한 컨텍스트 인스턴스에 모든 항목을 삽입하는 것보다 훨씬 빠릅니다. – Evk
일반적으로 ORM은 배치 작업에 적합하지 않으며 대량 삽입이 훨씬 적습니다. 그것은 자갈을 트럭으로 운반하기 위해 핀셋을 사용하는 것과 같습니다. 이 부분을 확장 물로 은폐 할 수는 없습니다. 대량 삽입을위한 가장 좋은 옵션은 SqlBulkCopy를 사용하여 최소 * 기록 * 스트리밍 대량 삽입 작업을 수행하는 것입니다. 대량 업데이트를 수행하려면 적절한 UPDATE 문을 사용하십시오.외부 소스에서 * UPSERT *를 원하면 모든 것을 스테이징 테이블로 임포트하고 MERGE를 사용하여 목표 테이블을 업데이트하십시오. –
즉, 불안정하고 안전하지 않고 확장 불가능한 프로세스를 신뢰할 수있는 프로세스로 변환 할 수있는 무언가를 찾고 있습니다. 하나. 왜 처음부터 안정적이고 확장 가능한 프로세스를 사용하지 않습니까? –