Спецификация сопоставления (язык MSL)
В модели Entity Data Model (модель EDM) предусмотрено использование в спецификации сопоставления языка MSL для подключения типов, объявленных на языке CSDL, к метаданным базы данных, в которой хранятся данные для приложений, использующих определяемую модель объектов.
Объекты NamespaceName и EntityContainerName, объявленные в CSDL-схеме, обозначают сущности и ассоциации, содержащиеся в концептуальной схеме. Синтаксис MSL обеспечивает их сопоставление в целях сохранения метаданных в файле на языке SSDL.
В следующем фрагменте MSL показан синтаксис, используемый для сопоставления контейнера сущностей HumanResources, как определено в CSDL-схеме, с соответствующим контейнером сущностей HumanResources, определенным в SSDL-схеме, которая описывает базу данных-получатель.
Имена контейнеров сущностей, присвоенные 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 включает атрибут Name, обозначающий набор сущностей Department и в концептуальной схеме, и в метаданных хранилища.
Элемент EntityTypeMapping включает атрибут TypeName для сущности Department в CSDL-схеме с соответствующим сопоставлением MappingFragment и атрибутом TableName, относящимся к таблице Department в базе данных.
Наконец, элементы ScalarProperty соответствуют значению Name свойства одной из сущностей в CSDL-схеме, относящейся к столбцу ColumnName в таблице Department из SSDL-схемы.
<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
.
Элемент EntitySetMapping (язык MSL)
Элемент EntityContainerMapping (язык MSL)
Элемент EntitySetMapping (язык MSL)
Элемент AssociationSetMapping (язык MSL)
См. также
Основные понятия
Концептуальная схема (язык CSDL)
Схема метаданных хранилища (язык SSDL)
Полная модель AdventureWorks (модель EDM)
Моделирование данных на платформе Entity Framework