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


Контейнер сущностей

Контейнер сущностей — это логическая группировка наборов сущностей, наборов ассоциаций и импорта функций.

Контейнер сущностей, определенный в концептуальной модели, должен удовлетворять следующим условиям:

  • В каждой концептуальной модели необходимо определить по крайней мере один контейнер сущностей.

  • Контейнер сущностей должен иметь уникальное имя в каждой концептуальной модели.

Контейнер сущностей может определять наборы сущностей или наборы ассоциаций, использующие типы сущностей или связи, определенные в одном или нескольких пространствах имен. Дополнительные сведения см. в разделе "Модель данных сущности: пространства имен".

Пример

На схеме ниже показана концептуальная модель с тремя типами сущностей: Book, Publisherи Author. Дополнительные сведения см. в следующем примере.

Пример модели с тремя типами сущностей

Хотя схема не передает сведения о контейнере сущностей, концептуальная модель должна определить контейнер сущностей. Платформа ADO.NET Entity Framework использует называемый DSL язык определения концептуальной схемы (CSDL) для определения концептуальных моделей. Следующий CSDL определяет контейнер сущностей для концептуальной модели, показанной на схеме выше. Обратите внимание, что имя контейнера сущности определяется в xml-атрибуте.

<EntityContainer Name="BooksContainer" >
  <EntitySet Name="Books" EntityType="BooksModel.Book" />
  <EntitySet Name="Publishers" EntityType="BooksModel.Publisher" />
  <EntitySet Name="Authors" EntityType="BooksModel.Author" />
  <AssociationSet Name="PublishedBy" Association="BooksModel.PublishedBy">
    <End Role="Book" EntitySet="Books" />
    <End Role="Publisher" EntitySet="Publishers" />
  </AssociationSet>
  <AssociationSet Name="WrittenBy" Association="BooksModel.WrittenBy">
    <End Role="Book" EntitySet="Books" />
    <End Role="Author" EntitySet="Authors" />
  </AssociationSet>
</EntityContainer>

См. также