매핑 사양(MSL)
EDM(엔터티 데이터 모델)에서 매핑 사양은 MSL(매핑 사양 언어)을 사용하여 CSDL(개념 스키마 정의 언어)에 선언된 형식을 정의되는 개체 모델을 사용하는 응용 프로그램의 데이터를 유지하는 데이터베이스 메타데이터에 연결합니다.
CSDL 스키마에 선언된 NamespaceName 및 EntityContainerName은 개념 스키마에 포함된 엔터티 및 연결을 식별합니다. MSL 구문은 SSDL(저장소 스키마 정의 언어) 파일에 메타데이터를 저장하기 위해 이들을 매핑합니다.
다음 MSL 세그먼트에서는 CSDL 스키마에 정의된 전체 컨테이너 HumanResources를 SSDL 스키마에 정의되어 대상 데이터베이스를 설명하는 엔터티 컨테이너 HumanResources에 매핑하는 데 사용되는 구문을 보여 줍니다.
CdmEntityContainer 및 StorageEntityContainer에 할당된 엔터티 컨테이너의 이름은 선언된 스키마의 Namespace 이름으로 정규화되지 않습니다. 엔터티 컨테이너는 스키마 내에 선언되지만 스키마로부터 독립적입니다.
<?xml version="1.0" encoding="utf-8"?>
<Mapping Space="C-S"
xmlns="urn:schemas-microsoft-com:windows:storage:mapping:CS">
<EntityContainerMapping CdmEntityContainer="HumanResources"
StorageEntityContainer="HumanResources">
엔터티 컨테이너에 포함된 엔터티 집합은 엔터티 컨테이너에 사용된 것과 유사한 구문을 사용하여 매핑됩니다. 다음 매핑에서는 이름이 AdventureWorksHRModel.Department인 개념 스키마의 엔터티 집합을 이름이 Department인 저장소 메타데이터의 테이블에 연결합니다. EntitySetMapping 요소에는 개념 스키마 및 저장소 메타데이터 모두에 있는 Department 엔터티 집합을 식별하는 Name 특성이 포함되어 있습니다.
EntityTypeMapping 요소에는 데이터베이스의 Department 테이블에 대한 해당 MappingFragment 및 TableName 특성과 함께 CSDL 스키마의 Department 엔터티에 대한 TypeName 특성이 들어 있습니다.
마지막으로, SSDL 스키마의 Department 테이블에 있는 ColumnName에 대해 ScalarProperty 요소는 CSDL 스키마에 있는 엔터티 속성의 Name에 해당합니다.
<EntitySetMapping Name="Department">
<EntityTypeMapping
TypeName="AdventureWorksHRModel.Department">
<MappingFragment TableName="Department">
<ScalarProperty Name="DepartmentID"
ColumnName="DepartmentID" />
<ScalarProperty Name="Name" ColumnName="Name" />
<ScalarProperty Name="GroupName"
ColumnName="GroupName" />
<ScalarProperty Name="ModifiedDate"
ColumnName="ModifiedDate" />
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
Xmlns
MSL 스키마는 XML 네임스페이스에 있습니다. urn:schemas-microsoft-com:windows:storage:mapping:CS
.
EntityContainerMapping 요소(MSL)
참고 항목
개념
개념 스키마(CSDL)
저장소 메타데이터 스키마(SSDL)
AdventureWorks 전체 모델(EDM)
Entity Framework의 데이터 모델링