프로그래밍/DB, SQL, EF

[Entity Framework] MySql에서 인서트 할때 '종속 속성이 저장소 생성 열에 매핑됩니다' 오류

당근천국 2018. 4. 18. 03:30

엔트리 프레임웍(Entity Framework)에서 Mysql에 'Insert'시 기본 키(primary key, PK)와 외래 키(foreign key, FK)가 한 컬럼에 걸려있을 경우 발생하는 오류 입니다.

 

ERROR MESSAGE : ReferentialConstraint의 종속 속성이 저장소 생성 열에 매핑됩니다. 열: '[컬럼 이름]'.

 


 

1. 해결 방법

 해당 컬럼의 'StoreGeneratedPattern'속성을 'None'로 바꿔주면 됩니다.

 

'.edmx'를 생성하였으면 UI에서도 수정은 가능한데.....

 

 

 

UI에서 수정한 내용은 적용이 되질 않습니다 -_-;;;

 

 

2. XML 편집기 이용

XML로 접근하여 변경해주어야 합니다.

'.edmx'파일에서 오른쪽 클릭 > 다른 프로그램 연결 > XML (텍스트) 편집기

를 선택하고 수정하려는 테이블의 컬럼을 찾아서 'StoreGeneratedPattern'속성을 'None'으로 바꾸고 저장해줍니다.

 

 

 

<!-- 변경 전 -->
<Property Name="[컬럼 이름]" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />

<!-- 변경 후 -->
<Property Name="[컬럼 이름]" Type="int" StoreGeneratedPattern="None" Nullable="false" />

 

 

 

이제 저장하고 다시 빌드하고 실행하면 오류가 사라집니다. 

 

참고

데이터베이스 퍼스트(Database First)로 여러 종류의 DB를 연결하면 애로사항이 많습니다.

시작부터 코드 퍼스(Code First)트로 만드는 것을 권장합니다 ㅜㅡ

 

참고 : stackoverflow - 'A dependent property in a ReferentialConstraint is mapped to a store-generated column' 질문의 surfen님 답변