Поделиться через


Элемент EntitySetMapping (язык MSL)

Элемент EntitySetMapping в языке MSL сопоставляет все типы в наборе сущностей концептуальной модели с наборами сущностей в модели хранения. Набор сущностей в концептуальной модели представляет собой логический контейнер для экземпляров сущностей одного типа (и производных типов). Набор сущностей в модели хранения представляет таблицу или представление в основной базе данных. Набор сущностей концептуальной модели задается значением атрибута Name элемента EntitySetMapping. Таблица или представление, с которыми выполняется сопоставление, задаются атрибутом StoreEntitySet в каждом дочернем элементе MappingFragment или непосредственно в элементе EntitySetMapping.

Элемент EntitySetMapping может иметь следующие дочерние элементы.

Применимые атрибуты

В следующей таблице описываются атрибуты, которые можно применить к элементу 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

Другие ресурсы

Моделирование и сопоставление (платформа Entity Framework)