I 사용자가 어떤 값을 변경하기로 결정하고 값이 될 여러에서 (하나 개의 값을 변경 한 곳이 저장된 것 후 바로 데이터베이스Entity Framework 개체가 변경되었는지 확인하는 방법은 무엇입니까?
var konsultant = uczestnik.Konsultanci;
uczestnik.Konsultanci = null; // null attached object and reuse it's ID later on for SAVE purposes
uczestnik.KonsultantNazwa = konsultant.KonsultantNazwa;
uczestnik.Szkolenie = null; // null attached object and reuse it's ID later on for SAVE purposes
uczestnik.SzkolenieID = szkolenie.SzkolenieID;
context.SzkolenieUczestnicies.AddObject(uczestnik);
context.SaveChanges();
context.Detach(uczestnik); // detatch to prevent Context problems
uczestnik.Szkolenie = szkolenie;// reassign for use in ObjectListView
uczestnik.Konsultanci = konsultant; // reassign for use in ObjectListView
에 저장있어 Uczestnik
라고 물체가 다시 ObjectListView에있어했습니다 정확한). 값의 엔티티 상태를 확인하면 Unchanged 상태이므로 .Attach 및 .SaveChanges()를 호출하면 아무 것도 수행하지 않습니다. ChangeObjectState
을 사용할 수 있지만 변경된 사항이 없으면 그렇게하는 것이 좋습니다. 나는 변화를 감지하고 불필요한 트래픽을 방지 할 수있는 방법
context.SzkolenieUczestnicies.Attach(uczestnik);
//context.ObjectStateManager.ChangeObjectState(uczestnik, EntityState.Modified);
context.SaveChanges();
그래서 resaving
가 이해되지 않는다 (나는 아무것도 파일이 큰 5MB 보유 목적 변경되지 않는 상황을 상상할 수 있습니다.) Entity가 하나의 필드 만 15에서 변경되었고 해당 필드 만 변경하는 것을 감지 할만큼 똑똑하지 않은가?
ObjectContext.DetectChanges를 보았습니까? –
아니요, 알고 계시지 않습니까? 어떻게 사용합니까? 또한 컨텍스트가'using'으로 묶여 있다고 가정하면 DetectChanges는 새로운 컨텍스트에서 실행될 때 아무 것도 표시하지 않겠습니까? – MadBoy