2012-08-14 2 views
0

임 엔티티 프레임 워크에 익숙하지 않아 약간의 조정 문제가 있습니다. 모든 것과 마찬가지로, 처음에는 CRUD 작업을 위해 내 인생을 얼마나 간단하게 만들 수 있는지 보았습니다. 그리고 그것이 훌륭하다고 생각했습니다. 그러나 내 개체 모델이 약간 더 복잡 해짐에 따라 점점 더 많은 문제가 생기기 시작했습니다.엔티티 프레임 워크 저장 하위 오브젝트

나는 거의 모든 질문에 대한 답변을 여기에서 검색하여 찾을 수 있지만, 현재의 내 질문은 나에게 충격을줍니다.

저는 1 대 1/0 관계로 연결된 두 개의 엔티티가 있습니다. 나는 이미지를 게시 아직 너무 아래에있는 내 사기 도면을 fogive하십시오 캔트 :

Person (id, name, address, dob, etc. etc.) 
Spouse (id, name, address, dob, etc. etc.) 

을 실제 내가 내 문제의 그 부분을 생각하지 않는다 더 복잡 동안.

Person person = new Person(); 
person.Spouse = new Spouse(); 
person.Spouse = spouse; 

(상상 속성 설정 포함) :

자,이를 보는 것은 1 0/1에 관계 한 사람 중 1 배우자했다, 또는 내가으로 내 객체를 생성 한 경우에는 0을

다음 저장하십시오. 그것은 대접을합니다. 그런 다음 다시로드하고 편집 할 수 있습니다. 수명이 깁니다.

내가 문제가되는 곳은 내가 배우자가없는 사람을 구한 다음 나중에 편집을 위해 그 사람을로드하고 배우자를 추가하려고하는 것입니다. 내가 컨테이너에 도착하면 .Attach (person); 호출하면 다음 예외가 throw됩니다. "임시 EntityKey 값을 가진 개체를 개체 컨텍스트에 연결할 수 없습니다."

지금, 나는 인해 배우자를 추가하는 방식 임, 즉이는 매우 확신 :

Person person = LoadPerson(id); 
Spouse spouse = new Spouse(); 
person.Spouse1 = spouse; 

문제 메신저 보는 지금 이전에 관련되지 않은 자식 개체를 연결하려고 메신저입니다. 오류 메시지에서 많은 검색을 수행했지만 일반적으로 개체 컨텍스트와 관련이있는 것처럼 보입니다. 또한 나는 (내가 찾은 결과로부터) 일을 발견했다. 내가 1 대 다수의 관계를 사용하고 Person.Spouses.Add (배우자)를하면 잘 작동합니다. 그러나 나는 관계가 논리적이 아니기 때문에 (이 나라에서는 어쨌든 ...) 그렇게하는 것을 주저합니다. 나는 분명히 내가 본 결과에서 간과 한 간단한 대답을 확신한다. (나는 이것을 처음 시도하고 시도 할 첫 번째 의심이 크다.) 그러나 나는 아무 것도 시도하지 않았다.

어떤 도움은 매우 극명하게 될 것이다 ...

답변

0

당신은 아마 당신이 사람에 연결하기 전에

Context.Spouses.Add(spouse); 

먼저 문맥에 배우자를 추가해야합니다.

관련 문제