이 항목에서는 엔터티 데이터 모델 마법사 또는 모델 업데이트 마법사에서 엔터티 키를 유추할 수 없는 경우 .edmx 파일을 수동으로 편집하여 엔터티 키를 변경하는 방법에 대해 설명합니다.
엔터티 데이터 모델 마법사 또는 모델 업데이트 마법사를 사용하여 .edmx 파일을 생성하거나 업데이트하는 경우 엔터티 형식의 키가 해당 테이블의 기본 키에 매핑됩니다. 뷰 등에서 기본 키가 정의되지 않은 경우 도구에서 테이블 또는 뷰 열을 기반으로 고유 엔터티 키를 유추하려고 합니다. 유추된 키는 테이블 또는 뷰에 null을 허용하지 않는 이진이 아닌 모든 열로 구성됩니다. 테이블 또는 뷰에 null을 허용하는 이진 열만 포함되어 있으면 키가 유추되지 않습니다.
엔터티 키가 유추되지 않는 경우 엔터티는 모델에 추가되지 않습니다. 대신 키가 정의되지 않은 EntityType 요소를 포함하는 코드 주석이 .edmx 파일의 SSDL 섹션에 추가됩니다.
엔터티 키에 대한 자세한 내용은 EntityType Element (CSDL) 및 EntityType Element (SSDL)를 참조하십시오.
이 항목의 절차에서는 올바른 .edmx 파일이 Visual Studio에서 열려 있다고 가정합니다.
![]() |
---|
다음 절차에서 제시한 대로 .edmx 파일의 SSDL 섹션에 대한 변경 내용은 모델 업데이트 마법사를 사용하여 모델을 업데이트할 때 덮어씁니다.이 경우 .edmx 파일을 수동으로 편집하지 않으려면 각 테이블에 기본 키가 있도록 또는 각 테이블 또는 뷰의 하나 이상의 열이 null을 허용하지 않거나 이진이 아니도록 데이터베이스 스키마를 수정합니다. |
테이블에서 키가 유추되지 않을 때 엔터티 키 추가
다음 절차는 테이블에 해당하는 엔터티 형식에 적용됩니다. 이 절차에서는 XML 편집기에서 .edmx 파일이 열려 있다고 가정합니다.
Entity Designer에서 테이블 열을 기반으로 엔터티 키를 유추할 수 없는 경우 엔터티는 모델에 추가되지 않습니다. 대신 키가 정의되지 않은 EntityType 요소를 포함하는 코드 주석이 .edmx 파일의 SSDL 섹션에 추가됩니다.
테이블에서 키가 유추되지 않을 때 엔터티 키를 추가하려면
.edmx 파일의 SSDL 섹션에서 EntityType 요소의 주석 처리를 제거합니다.
적합한 Key 요소를 EntityType 요소에 추가하여 엔터티 형식에 대한 키를 정의합니다. 자세한 내용은 EntityType Element (SSDL)를 참조하십시오.
참고:
엔터티 키를 정의하는 데 사용되는 열은 테이블의 행을 고유하게 식별해야 합니다. SSDL 섹션에서 추가된 엔터티 형식이 매핑되는 테이블을 지정하는 EntitySet 요소를 추가합니다. 자세한 내용은 EntitySet Element (EntityContainer SSDL)를 참조하십시오.
CSDL 섹션에서 추가된 SSDL 엔터티 형식에 해당하는 EntityType 요소를 추가합니다. 자세한 내용은 EntityType Element CSDL를 참조하십시오.
C-S 매핑(개념적에서 저장소로의 매핑) 섹션에서 추가된 SSDL 엔터티 형식과 CSDL 엔터티 형식 사이의 매핑을 지정하는 EntitySetMapping 요소를 추가합니다. 자세한 내용은 EntitySetMapping Element (MSL)를 참조하십시오.
뷰에서 키가 유추되지 않을 때 엔터티 키 추가
다음 절차는 뷰에 해당하는 엔터티 형식에 적용됩니다. 이 절차에서는 XML 편집기에서 .edmx 파일이 열려 있다고 가정합니다.
Entity Designer에서 뷰 열을 기반으로 엔터티 키를 유추할 수 없는 경우 엔터티는 모델에 추가되지 않습니다. 대신 키가 정의되지 않은 EntityType 요소를 포함하는 코드 주석이 .edmx 파일의 SSDL 섹션에 추가됩니다.
뷰에서 키가 유추되지 않을 때 엔터티 키를 추가하려면
.edmx 파일의 SSDL 섹션에서 EntityType 요소의 주석 처리를 제거합니다.
적합한 Key 요소를 EntityType 요소에 추가하여 엔터티 형식에 대한 키를 정의합니다. 자세한 내용은 EntityType Element (SSDL)를 참조하십시오.
참고:
엔터티 키를 정의하는 데 사용되는 열은 뷰의 행을 고유하게 식별해야 합니다. 모델에 정의 쿼리를 추가합니다. 자세한 내용은 방법: 정의 쿼리 추가(Entity Framework)를 참조하십시오.