0

데이터베이스 'cable', 'cablewire'에 두 개의 테이블이 있습니다. 복합 키는 두 개의 필드 id1, id2에 대해 두 번째 테이블에 있습니다. id1은 첫 번째 테이블의 'cable_id'와 (외래 키 연관이없는) 많은 관계를 갖고 있습니다. 요점은 내 데이터베이스의 테이블 사이에 어떤 연관도 사용하지 않고 있으며 기본 키 필드가 자동으로 생성되지 않습니다. 복합 키 및 ID 지정이없는 테이블에 대한 여러 엔터티 삽입 - 엔터티 프레임 워크에서 잘못된 연산 예외가 발생했습니다

내가 기본 키 값을 수동으로주는 두 테이블에 데이터를 추가

은 ...
cable newCable = new cable(); 
       newCable.cable_id = newId; 
       newCable.wireCount = 5; 

dbContext.Cables.Add(newCable); 
dbContext.SaveChanges(); 

for(i=0; i<cable.wireCount; i++) 
{ 
    cableWire newCableWire = new cableWire(); 
      newCableWire.id1 = newId; 
      newCableWire.id2 = newId + i + 1; 
    dbContext.CableWires.Add(newCableWire); 
} 
dbContext.SaveChanges(); 

내가 루프 반복의 후 SaveChanges를 호출

은, 여기에서 InvalidOperationException을 던지고 ...하고 .....

enter image description here

나는 복합 키 (ID1 + ID2)이 두 기록에 차이가 있지만 .... 무슨 일이 잘못 알고하지 않습니다, 여전히 중복을 삽입 할 수 없습니다 말하고있다 엔티티 유형의 기본 키 값 ' 케이블 '. 누군가 내가 뭘 잘못했는지 도와주세요.

복합 키 필드 값을 명시 적으로 복제 할 수 없습니까? Entity Framework 5를 사용 중입니다

답변

1

루프 내에 dbContext.SaveChanges();을 넣으십시오.

+0

나는 그것을 시도했다. 그러나 같은 결과로 끝났다. .. –