Модель EDM. Пространство имен
Пространство имен в модели данных сущности (EDM) — это абстрактный контейнер для типов сущностей, сложных типов и связей. Пространства имен в модели EDM схожи с пространствами имен в языке программирования: они обеспечивают контекст для объектов, которые они содержат, а также являются способом устранения неопределенности в отношении объектов, которые имеют одно и то же имя (но содержатся в разных пространствах имен).
Пример
В ADO.NET Entity Framework используется язык, зависящий от домена (DSL), называемый языком определения концептуальной схемы (CSDL) для определения концептуальных моделей. В следующем коде на языке CSDL используется пространство имен для идентификации типа, определенного в другой концептуальной модели. В примере определяется тип сущности (Publisher
), который имеет свойство сложного типа (Address
), импортированного из пространства имен ExtendedBooksModel
. Обратите внимание, что элемент Using
указывает на то, что пространство имен было импортировано. Также обратите внимание, что тип свойства Address
определен при помощи своего полного имени (ExtendedBooksModel.Address
) с указанием на то, что этот тип определен в пространстве имен ExtendedBooksModel
.
<Schema xmlns="http://schemas.microsoft.com/ado/2008/09/edm"
xmlns:cg="http://schemas.microsoft.com/ado/2006/04/codegeneration"
xmlns:store="http://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>