Концептуальная схема (язык CSDL)
Концептуальная схема — это шаблон конструирования для модели объектов, который будет использоваться приложениями, построенными на основе модели Entity Data Model (модель EDM). Имя пространства имен, объявленное в концептуальной схеме, будет использоваться для уточнения имен классов сущностей и ассоциаций в сформированной модели объектов.
Архитектура модели EDM предоставляет основную структуру сущностей и ассоциаций. Разработчики приложений порождают сущности и ассоциации на основе этих типов. Типы, определенные в концептуальной схеме, сопоставляются с метаданными, описывающими модель хранения.
Концептуальная схема использует диалект XML, называемый языком CSDL. В метаданных хранилища используется диалект XML, называемый языком SSDL.
![]() |
---|
Пространства имен языка CSDL отличаются от пространств имен XML. Пространства имен языка CSDL используются для полного указания имен типов сущностей и ассоциаций. Например, если язык MSL ссылается на типы сущностей, необходимо предоставить полное имя. Кроме того, при формировании классов в пространстве имен среды CLR будут созданы классы с такими же именами. Язык CSDL находится в пространстве имен XML |
Пространство имен и сопоставление
Корневым элементом концептуальной схемы является элемент Schema. Он содержит атрибут Namespace, указывающий пространство имен языка CSDL. Пространство имен используется в спецификации сопоставления для соединения типов языка CSDL с метаданными хранилища.
В следующей декларации CSDL-схемы содержится пространство имен, используемое в спецификации сопоставления при сопоставлении сущностей и ассоциаций образца приложения AdventureWorksHRModel с метаданными хранилища.
<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="AdventureWorksHRModel"
Alias="Self"
xmlns="https://schemas.microsoft.com/ado/2006/04/edm">
SSDL-файл содержит похожую строку.
<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="AdventureWorksHRTarget"
Alias="Self"
xmlns="https://schemas.microsoft.com/ado/2006/04/edm/ssdl">
Имена пространств имен, используемые в этих декларациях, отражают их задачи в создаваемой модели данных. AdventureWorksHRModel — это концептуальная модель, которая в данных примерах сопоставлена с пространством имен AdventureWorksHRTarget метаданных цели.
Элементы контейнеров сущностей, расположенные в концептуальной схеме и схеме хранилища, не зависят от элемента Schema, хотя в обоих случаях они и являются дочерними элементами элементов Schema.
В спецификации сопоставления элемент EntityContainerMapping выполняет сопоставление двух объектов-контейнеров без упоминания их имен пространств имен: edm:CdmEntityContainer="HumanResources"``edm:StorageEntityContainer="HumanResources"
. Использование имени контейнера сущностей, уточненного именем пространства имен схемы, вызывает исключение при сопоставлении.
Следующий заголовок языка MSL показывает сопоставление между контейнером сущностей HumanResources в концептуальной схеме, называемой здесь CdmEntityContainer, и метаданными хранилища, называемыми здесь StorageEntityContainer.
<?xml version="1.0" encoding="utf-8"?>
<Mapping edm:Space="C-S"
xmlns="urn:schemas-microsoft-com:windows:storage:mapping:CS">
<EntityContainerMapping CdmEntityContainer="HumanResources"
StorageEntityContainer="HumanResources">
Другие элементы CSDL-схемы аналогичным образом сопоставляются со спецификациями SSDL в спецификации сопоставления. В подразделах этого раздела описываются типы и элементы, которые используются для реализации объектной модели, построенной на модели EDM.
В этом разделе
Элемент EntityType (язык CSDL)
Элемент Association (язык CSDL)
Элемент EntityContainer (язык CSDL)
См. также
Основные понятия
Реализация сущностей (модель EDM)
Реализация ассоциаций (модель EDM)
Полная модель AdventureWorks (модель EDM)