person이라는 새 개체를 만들고이 개체를 address라는 데이터베이스에 이미있는 레코드에 연결한다고 가정 해 봅시다. 가서 Person 객체를 저장할 때 주소를 두 번 삽입하고 복제본을 만들지는 않습니다. EF로 이것을 처리하는 가장 좋은 방법은 무엇입니까?Entity Framework 개체 상태 new/existing
답변
이렇게하는 가장 좋은 방법은 전체 개체가 아닌 외래 키 필드 만 설정하는 것입니다. 예를 들어
, 여기
Person p = new Person();
p.Name = "John Doe";
p.AddressId = 12345;
context.People.Add(p);
context.SaveChanges();
는 EF 레코드를 복제하는 이유를 설명 줄리 러먼의 뛰어난 기사입니다.
https://msdn.microsoft.com/en-us/magazine/dn166926.aspx
Person 클래스에 Address 탐색 속성 외에도 AddressId 속성이있는 경우에만 작동한다는 점에 유의해야합니다. –
탐색 속성에 주소가 있고 ID에 EF가 중복을 만들면 –
주소가 있고 그 사람이 새 주소 인 경우 주소 탐색 속성을 설정하지 않아야합니다. 코드를 통해 설정하려는 경우 외래 키 ID 필드를 설정했는지 여부에 관계없이 EF에 주소가 이미 존재하는지 또는 새 주소가 만들어 지는지 EF에게 알려야합니다. 내가 언급 한 기사 (context.Entry (topic) .State = EntityState.Unchanged)는 기존 주소를 무시하도록 EF에 알려주는 내용입니다. ID 필드는 설정해야하며 네비게이션 속성은 내가 제공 한 대답을 사용하지 않습니다. 그렇지 않으면 줄리가 코드에서 엔티티의 상태를 제안하고 관리 할 때해야합니다. – user1011627
- 1. Entity Framework - 개체 속성
- 2. Entity Framework : 관련 개체 및 기타 상태 관리 연결
- 3. Entity Framework : 관계가있는 개체 디자인
- 4. Entity Framework 임시 개체 작업
- 5. Entity Framework TryUpdateModel 자식 개체?
- 6. Entity Framework - 개체 컨텍스트 닫기
- 7. Entity Framework - 기본 자식 개체
- 8. Entity Framework의 자세한 개체 상태?
- 9. Entity Framework 4.0의 POCO 개체 캐싱
- 10. Entity Framework 탐색 속성 업데이트
- 11. Entity Framework
- 12. Entity Framework 4.1에서 엔터티 상태 변경
- 13. WCF를 통한 Entity Framework 개체 직렬화
- 14. Entity Framework 및 DbContext - 개체 추적
- 15. Entity Framework - 컬렉션으로 개체 가져 오기
- 16. WCF 및 Entity Framework 프록시 개체
- 17. Entity Framework Core 테이블에서 단일 개체 검색
- 18. 집계 LINQ 쿼리의 Entity Framework 개체 제한
- 19. xml에 Entity Framework 개체 인스턴스가 계속 적용됩니다.
- 20. ID로 상속 된 개체 찾기 - Entity Framework
- 21. Entity Framework 6의 변경되지 않은 개체
- 22. Entity Framework 4.3 개체 그래프 업데이트
- 23. Entity Framework 개체 실제 업데이트 - 중복 없음
- 24. Entity Framework 관련 개체가있는 개체 삽입
- 25. Entity Framework Group 개체 또는 ComplexType으로 지정
- 26. Entity Framework - 탐색 경로의 개체 건너 뛰기
- 27. Entity Framework - 여러 관련 개체가있는 개체 삽입
- 28. Entity Framework : 즉시 관련 개체 가져 오기
- 29. Entity Framework 코드 개체에서 개체 생성 감지
- 30. Entity Framework CTP5에서 개체 캐싱 기능을 해제하십시오.
이 사람 객체를 생성 한 후, 당신은 단순히 ADRESS 멤버를 설정 한 사람의 기록을, 사용 방법을 추가 한 후 변경 사항을 저장 – Kevorkian
그래하지만 난 (삽입) 저장할 –
단순히 (사람) 방법, 및 경우 추가 사용 주소에있는 사람에 대한 참조가 있으니 업데이트해야합니다. – Kevorkian