0

동일한 objectContext를 사용하여 데이터를 삽입하려고하면 몇 가지 문제가 있습니다.동일한 objectContext에 여러 레코드 삽입

내 문제는 엔터티가 내 코드를 읽는 순서가 내가 "추가"하는 순서가 아니라는 것입니다.

예 :

EntityAB은 FK 같은 EntityA의 PK가있다. 1-N 관계.

objContext.DbSet.Add(EntityA); 
objContext.DbSet.Add(EntityAB); 
objContext.SaveChanges(); 

오류 메시지 코드는 SaveChanges()에 도달했을 때 :

: 나는에 코드를 변경하는 경우 그래서, 내 엔티티 프레임 워크는 objContext.DbSet.Add(EntityAB); 을 읽고

The INSERT statement conflicted with the FOREIGN KEY constraint "FK_EntityAB_EntityA". The conflict occurred in database "dbTest", table "dbo.EntityA", column 'IdEntityA'. 
The statement has been terminated. 

전에objContext.DbSet.Add(EntityA);


objContext.DbSet.Add(EntityA); 
objContext.SaveChanges(); 
objContext.DbSet.Add(EntityAB); 
objContext.SaveChanges(); 

작동합니다.


하지만 그렇지 않습니다. 감사의 이유로 하나의SaveChanges()에서 수행해야합니다.

내 질문은
SAVEECHANGES() (을)를 부여 할 수 있습니까? 코드를 추가 했습니까?

답변

1

컨텍스트가 어떻게 설정되어 있습니까?

나는 다음과 같은 작업 것 같아요 ..

맥락에서

public DbSet<EntityA> EntityAs { get; set; } 
public DbSet<EntityAB EntityABs { get; set; } 

다음 다른 코드

objContext.EntityAs.Add(EntityA); 
objContext.EntityAB.Add(EntityAB); 
objContext.SaveChanges(); 

문제가 해결되지 않으면 내가 탐구 것

objContext.local 
+0

나는 sim으로 뭔가 해결했습니다. ilar (해결 방법과 같이 보이며 개선하기 위해 노력하고 있습니다.) @drch [채팅] (http://chat.stackoverflow.com/transcript/message/9043123#9043123)에서 아이디어를 얻었습니다. –