Элемент EntitySetMapping (язык MSL)
Элемент EntitySetMapping в языке MSL сопоставляет все типы в наборе сущностей концептуальной модели с наборами сущностей в модели хранения. Набор сущностей в концептуальной модели представляет собой логический контейнер для экземпляров сущностей одного типа (и производных типов). Набор сущностей в модели хранения представляет таблицу или представление в основной базе данных. Набор сущностей концептуальной модели задается значением атрибута Name элемента EntitySetMapping. Таблица или представление, с которыми выполняется сопоставление, задаются атрибутом StoreEntitySet в каждом дочернем элементе MappingFragment или непосредственно в элементе EntitySetMapping.
Элемент EntitySetMapping может иметь следующие дочерние элементы.
EntityTypeMapping (ноль и более)
QueryView (ноль или один)
MappingFragment (ноль и более)
Применимые атрибуты
В следующей таблице описываются атрибуты, которые можно применить к элементу EntitySetMapping.
Имя атрибута | Необходимо | Значение |
---|---|---|
Name |
Да |
Имя сопоставляемого набора сущностей концептуальной модели. |
TypeName 1 |
Нет |
Имя сопоставляемого типа сущности концептуальной модели. |
StoreEntitySet 1 |
Нет |
Имя сопоставляемого набора сущностей модели хранения. |
MakeColumnsDistinct |
Нет |
True или False, в зависимости от того, возвращаются ли только уникальные строки. Если этот атрибут имеет значение True, то атрибут GenerateUpdateViews элемента EntityContainerMapping должен иметь значение False. |
1 Атрибуты TypeName и StoreEntitySet можно использовать вместо дочерних элементов EntityTypeMapping и MappingFragment для сопоставления отдельного типа сущности с одной таблицей.
Пример
В следующем примере демонстрируется элемент EntitySetMapping, сопоставляющий три типа (базовый тип и два производных типа) в наборе сущностей Courses концептуальной модели с тремя разными таблицами основной базы данных. Таблицы заданы атрибутом StoreEntitySet в каждом из элементов MappingFragment.
<EntitySetMapping Name="Courses">
<EntityTypeMapping TypeName="IsTypeOf(SchoolModel1.Course)">
<MappingFragment StoreEntitySet="Course">
<ScalarProperty Name="CourseID" ColumnName="CourseID" />
<ScalarProperty Name="DepartmentID" ColumnName="DepartmentID" />
<ScalarProperty Name="Credits" ColumnName="Credits" />
<ScalarProperty Name="Title" ColumnName="Title" />
</MappingFragment>
</EntityTypeMapping>
<EntityTypeMapping TypeName="IsTypeOf(SchoolModel1.OnlineCourse)">
<MappingFragment StoreEntitySet="OnlineCourse">
<ScalarProperty Name="CourseID" ColumnName="CourseID" />
<ScalarProperty Name="URL" ColumnName="URL" />
</MappingFragment>
</EntityTypeMapping>
<EntityTypeMapping TypeName="IsTypeOf(SchoolModel1.OnsiteCourse)">
<MappingFragment StoreEntitySet="OnsiteCourse">
<ScalarProperty Name="CourseID" ColumnName="CourseID" />
<ScalarProperty Name="Time" ColumnName="Time" />
<ScalarProperty Name="Days" ColumnName="Days" />
<ScalarProperty Name="Location" ColumnName="Location" />
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
См. также
Основные понятия
Спецификация языка CSDL
Спецификация языка SSDL