2011-08-11 4 views
3

EntityObject 파생 된 형식 또는 프록시 객체를 변경 추적 작업 할 때, 그들은Entity Framework - 자동 변경 감지의 이점은 무엇입니까?

어떤 이점이 저를 주는가를 발생하는 엔티티 프레임 워크가 자동으로 개체에 대한 변경 사항을 추적? 이것이 없으면 SaveChanges를 호출하고 POCO가 올바르게 유지 될 때 변경 사항이 계속 감지됩니다.

또한 EF에 대한 많은 온라인 자습서가 변경 한 후에 명시 적으로 상태를 수정하도록 변경하는 이유는 무엇입니까? 생성 및 DB에 대해 실행하기 위해 어떤 SQL - 당신이 SaveChanges를 호출 할 때()는 데이터베이스, 즉에 업데이트 할 수있는 실체를 알 수 있도록

context.Entry(model).State = EntityState.Modified; 

답변

1

EF, 당신의 엔티티의 변화를 추적합니다.


아래 라인이있는 이유는 현재 추적되지 않고 해당 상태를 수정 됨으로 설정하는 것입니다.

context.Entry(model).State = EntityState.Modified; 

사용자가 직접 엔티티의 인스턴스를 만든 경우 (예 : -

var customer = new Customer(); 

이렇게하면 고객이 DbContext에 추가되지 않으므로 추적되지 않습니다. 그래서 context.Entry (고객)을 사용해야합니다.

+0

프레임 워크에서 제공하는 자동 변경 내용 추적과 기본 스냅 샷 추적 기능을 통해 구체적으로 언급했습니다. '인스턴트 알림'으로 여기에 설명 된대로 msdn.microsoft.com/en-us/library/gg696177(v=VS.103).aspx 상태를 modified로 변경하는 줄은 추적 된 엔터티를 수정 한 후에 사용됩니다. 이해하지 못해. 내가 주석을 달면 엔터티가 예상대로 업데이트됩니다. – SeeNoWeevil