2

내 기본 테이블에 이미 일부 등록 ID = 5가 있습니다. 특수 테이블에 동일한 ID를 추가하려면 어떻게해야합니까?상속 - 그냥 특수 테이블에 레코드 삽입

예 : 나는 기본 테이블에 어떤 값을 삽입

BaseTable 
ID INT 
Name Varchar(100) 

DerivedTable 
ID INT 
Test BIT 

Context.BaseTable.Add(new BaseTable(){ Name = '123' }); 
Context.SaveChanges(); 

ID는 5

가 지금은 전문 값을 추가 할 것입니다

Context.DerivedTable.Add(new DerivedTable(){ ID = 5, Test = 1 }); 
Context.SaveChanges(); 

It did not work, linqpad가 SQL에 새로운 BaseTable 레지스터를 만들려고한다는 것을 보여줍니다.

이 문제를 해결할 수있는 방법이 있습니까?

당신이 (그것이 아마도 모델의 추상 클래스이어야한다)는 별도로 기본 테이블에 삽입해서는 안

+0

'테이블 당 유형'으로 매핑 했습니까? – Eranga

+0

@Eranga 내가 상속 된 테이블로 매핑 됨 – Alexandre

답변

2

당신이 (EDMX TPTCode first TPT)을 유산으로 매핑이있는 경우 TKS. 파생 테이블에만 삽입해야하며 EF는 매핑 된 테이블에 대한 삽입을 처리합니다.

Context.DerivedTable.Add(new DerivedTable(){ Name = "123", Test = 1 }); 
Context.SaveChanges(); 
+0

문제가 있습니다. 기본 테이블에 EF 삽입을 원하지 않습니다. – Alexandre

+0

그런 경우에는 상속을 사용할 수 없으며 대신 일대일 정규 표현식으로 클래스를 모델링해야합니다. 하나의 관계. –

+0

구조를 변경할 수 없습니다 .... 제 해결 방법은 Store 프로 시저를 만들고 EF를 통해 exec하는 것입니다. Tks Ladislav – Alexandre

관련 문제