속도가 감소함에 따라 많은 엔티티에 걸쳐 실행되는 수정 코드를 실행하고 있습니다. 즉, 컨텍스트에서 추적되는 엔티티의 수가 반복 될 때마다 증가하기 때문에 시간이 오래 걸릴 수 있으므로 마지막에 변경 사항을 저장합니다. 각 반복의. 각 반복은 독립적이며 이전에로드 된 엔티티를 변경하지 않습니다.
변경 내용 추적을 끌 수 있다는 것을 알고 있지만 대량 삽입 코드가 아니기 때문에 원하지 않습니다. 엔티티를로드하고 몇 가지를 계산하고 숫자가 올바르지 않으면 새 숫자를 설정하고 업데이트 / 삭제 / 생성합니다. 일부 추가 엔티티. 각 반복에 대해 새 DbContext를 만들 수 있으며 동일한 인스턴스에서 모두 수행하는 것보다 더 빨리 실행될 수 있다는 것을 알고 있지만 더 나은 방법이있을 수 있다고 생각합니다.
그래서 질문은; 이전에 db 컨텍스트에로드 된 엔티티를 지우는 방법이 있습니까?
context.Entry(entity).State = EntityState.Detached특정 엔터티 추적이 중지됩니다.