엔터티 데이터 모델: 네임스페이스
EDM(엔터티 데이터 모델)의 네임스페이스는 엔터티 형식, 복합 형식 및 연결의 추상 컨테이너입니다. EDM의 네임스페이스는 프로그래밍 언어의 네임스페이스와 유사하며, 포함하는 개체에 대한 컨텍스트를 제공하고 이름은 같지만 다른 네임스페이스에 포함된 개체를 구분하는 방법을 제공합니다.
예제
ADO.NET Entity Framework는 CSDL(개념 스키마 정의 언어)이라는 DSL(Domain-Specific Language)을 사용하여 개념적 모델을 정의합니다. 다음 CSDL 코드에서는 네임스페이스를 사용하여 다른 개념적 모델에서 정의된 형식을 식별합니다. 다음 예제에서는 ExtendedBooksModel 네임스페이스에서 가져온 복합 형식 속성(Address)이 있는 엔터티 형식(Publisher)을 정의합니다. Using 요소는 네임스페이스를 가져왔음을 나타냅니다. Address 속성의 형식은 정규화된 이름(ExtendedBooksModel.Address)을 사용하여 정의되며, 이 형식이 ExtendedBooksModel 네임스페이스에 정의되었음을 나타냅니다.
<Schema xmlns="https://schemas.microsoft.com/ado/2008/09/edm"
xmlns:cg="https://schemas.microsoft.com/ado/2006/04/codegeneration"
xmlns:store="https://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator"
Namespace="BooksModel" Alias="Self">
<Using Namespace="BooksModel.Extended" Alias="BMExt" />
<EntityContainer Name="BooksContainer" >
<EntitySet Name="Publishers" EntityType="BooksModel.Publisher" />
</EntityContainer>
<EntityType Name="Publisher">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Type="Int32" Name="Id" Nullable="false" />
<Property Type="String" Name="Name" Nullable="false" />
<Property Type="BMExt.Address" Name="Address" Nullable="false" />
</EntityType>
</Schema>