첨부되지 않았 음을 확신하지만 ObjectContext에 개체를 추가 할 수 없습니다. 다른 컨텍스트EF4는 첨부되지 않았다고 확신하더라도 컨텍스트에 개체를 추가 할 수 없습니다.
나는 POCO 개체와 함께 EF 4를 사용하고 있습니다. 내가
_currentContext.ObjectStateManager.GetObjectStateEntry(entityIn)
을하려고하면
그럼 내가 거기 아니다 충분
The ObjectStateManager does not contain an ObjectStateEntry with a reference to an object of type 'System.Data.Entity.DynamicProxies.OrderItem_7D361CB49D75AA90681B4BA3F924139ECB0FC1426E38E90C7B884A4E9CD777DF'.
박람회 오류가 발생합니다. 나는 둘 다 오류를 받고있을 수 있습니다 어떻게 첨부하려고하면 그래서
_currentContext.AttachTo("OrderItems", entityIn)
은 그 때 나는
An entity object cannot be referenced by multiple instances of IEntityChangeTracker.
를 얻을. 그들은 모순되지 않습니까 ?? 컨텍스트에 어떻게 첨부 할 수 있습니까?
편집
응용 프로그램 전반에 걸쳐 하나의 맥락이있다. 패턴은
- 리포지토리 개체를 통한 모든 호출입니다.
- 개체는 해당 개체 컨텍스트를 팩토리 클래스에서 가져옵니다.
- 이 공장 클래스는 컨텍스트를 만들거나 그래서 당신이 문맥의 두 인스턴스 생성을 경우 해시 코드를 객체를 어떤 시점에서 페이지 수명주기
에 사용되는 하나의 문맥을 보장 요청 오브젝트로부터 문맥을 취득하거나 각각은 동일합니다.
OrderItem을 참조 (예 : 다른 엔터티)하거나 동일한 키가있는 Order가 이미 첨부되어 있습니까? 그러면 다음과 같은 문제가 발생할 수 있습니다. http://stackoverflow.com/questions/7938728/objectstatemanager-trygetobjectstateentry-returns-false-for-attached-object/7938909#7938909 – Slauma
Order @Slauma와 잘 어울립니다. 내 스키마 (농담)를 본 적이 있니? 아마도 고마워. 그러나 기본 주문이 이미 첨부되어이 문제를 일으키는 경우 어떻게 주문 항목을 첨부 할 수 있습니까? 나는 명백한 무엇인가 놓치고있는 I 'm 다? –
첨부 된 Order가 OrderItem에서 참조하는 Order와 동일한 오브젝트이면 문제가되지 않습니다. 그러나이 오류는 연결된 주문 (해시 = x, 키 = 1)과 같은 키 (해시 = y, 키 = 1)를 가진 다른 주문 개체가 있음을 나타냅니다. 이것을 가지고 있다면, 접속 된 Order에 의해 분리 된 Order (OrderItem에 의해 참조 됨)를 대체하거나 첨부하기 전에 OrderItem에서 Order 로의 참조를 널 (null)로 설정해야합니다. 제 추측도 틀릴 수도 있습니다. IEntityChangeTracker의 여러 인스턴스에 대한이 오류가 제 링크 된 대답과 같은 이유인지는 잘 모르겠습니다. – Slauma