카테고리 없음

[엔티티 프레임 워크] Entity Framework 업데이트 여러 행

행복을전해요 2021. 2. 22. 04:36

I know I'm late, but what about ForEach?

objectToSave.widgets.ForEach(o => { o.Prop1 = Val1, o.Prop2 = Val2 });
Db.ObjectContext.SaveChanges();
-------------------

Entity Framework(적어도 EF5.0까지, 상황이 변경된 EF6.0에있을 수 있음) 일괄 업데이트를 수행 할 수 없습니다. 각 행 업데이트에 대해 단일 쿼리를 생성합니다. 확장 메서드가 있는 EntityFramework.Extended 라이브러리를 살펴보면 일괄 업데이트 및 일괄 삭제를 수행 할 수 있습니다.

-------------------

EF의 변경 추적 엔진은 충분히 느리고 모든 속성 변경시 실행됩니다.

이것이 귀하의 경우에 해당되는 경우 사이클을

        db.Configuration.AutoDetectChangesEnabled = false;
        for (int i = 0; i < objectToSave.widgets.Length; i++)
                {
                            // here is the logic
                                    }
                                            Db.ObjectContext.DetectChanges();
                                                    Db.Configuration.AutoDetectChangesEnabled = true;
                                                    
-------------------

다른 스레드에서 여러 작업을 시도 할 수 있습니다. 이것은 항상 더 빠릅니다. 위젯 그룹을 잡고 하나의 스레드에서 변경하십시오. 다른 스레드의 다른 위젯 그룹 등. 그룹이 작을수록 (더 많은 스레드) PC가 반대를 말할 때까지 더 빠를 것입니다. 참조 여기에 , 그것을 할 수있는 하나의 방법이다.



출처
https://stackoverflow.com/questions/22079993