기본 생성자로 storegeneratedpattern = none으로 설정된 기본 키가있는 엔티티가 있습니다. 따라서 id 클라이언트 측을 제공합니다.storegeneratedpattern = none 인 Entity Framework 4 엔티티는 저장시 외래 키를 업데이트하지 않습니다.
이 엔티티에는 탐색 및 외부 키 ID와의 연관을 통해 다시 참조하는 하위 엔티티가 있습니다.
새 상위 엔티티를 작성하고 하위를 추가 한 후 상위 엔티티 기본 키를 설정하고 저장하면 하위에 대한 외래 키의 수정 사항이 저장 후 발생하고 데이터베이스에 유지되지 않습니다.
는 저장은 단순히 한 후
Context.Engines.AddObject(entity);
Context.SaveChanges();
engine = new Engine();
part = new Part();
engine.Parts.Add(part);
engine.Id = 6;
engineRepository.Save(engine);
입니다 예를 들어 저장 "부분을"외래 키 "engineID를"= 6이되지만 데이터베이스에는 "engineID를"입니다 = 0, 즉 저장 후 수정이 일어난 것처럼 보입니다.
무엇이 여기에 있습니까? 엔진 용 상점 생성 패턴이 신원이라면 모두 잘 작동합니다.
그것은 하나의 가능성이지만 EF의 전체 자동 수정이 무효화됨을 의미합니다. 사실 우리는 거대한 그래프를 가지고 있으며 적절한 모든 ID를 설정하기 위해 모든 것을 수행해야합니다. 나는 우리가 결국 아래에서 사용했던 대답을 제공했다. –