2011-12-13 3 views
0

먼저 데이터베이스를 사용하여 컨텍스트를 작성한 다음이 컨텍스트를 두 번 인스턴스화하면 어떻게됩니까? 첫 번째 컨텍스트에서 특정 엔티티를 쿼리하여 두 번째 컨텍스트에 추가하고 싶습니다. AddObject와 Attach를 사용하는 경우의 차이점은 무엇입니까? 예.하나의 컨텍스트에서 엔티티를 다른 컨텍스트로 전송할 때 AddObject와 Attach의 차이점

Student stu = context1.Students.First(); 
context1.Detach(stu); 
context2.Attach(stu); 

Student stu = context1.Students.First(); 
context1.Detach(stu); 
context2.Students.AddObject(stu); 

그들 사이의 차이점은 무엇입니까? 미리 감사드립니다.

답변

4

Attach 메서드는 개체 또는 개체 그래프를 상태로 상태로 붙입니다. 즉, 첨부 한 후에 개체를 수정하지 않으면 EF는 SaveChanges() 메서드를 호출 할 때 해당 개체에 대한 업데이트/삭제 명령을 실행하지 않습니다.

그러나 AddObject 메서드를 사용하면 EF는 해당 개체를 SaveChanges() 메서드의 새 엔터티로 삽입합니다.

context2이 다른 데이터베이스에 연결되어 있고 인스턴스를 복사하려는 경우 AddObject을 사용할 수 있습니다. 그렇지 않으면 Attach 방법을 사용하십시오.

+0

내가 얼마나 많은 시간을 알아 내려고하는지, 추가와 첨부에 대한 차이점을 말할 수는 없습니다. 이제는 모두 명확합니다! –

관련 문제