Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Набор ассоциаций — это логический контейнер для экземпляров ассоциаций одного типа. Набор сопоставлений не является конструкцией моделирования данных; т. е. структура данных или связей не описывается. Вместо этого набор ассоциаций предоставляет конструкцию для среды размещения или хранилища (например, общей среды выполнения .NET или базы данных SQL Server) для группировки экземпляров ассоциаций, чтобы их можно было сопоставить с хранилищем данных.
Набор ассоциаций определяется в контейнере сущностей, который представляет собой логическую группирование наборов сущностей и наборов ассоциаций.
Определение для набора сопоставлений содержит следующие сведения:
Имя набора сопоставлений. (Обязательно)
Ассоциация, экземпляры которой она будет содержать. (Обязательно)
Два конца набора связей.
Пример
На схеме ниже показана концептуальная модель с двумя ассоциациями: PublishedByи WrittenBy. Хотя сведения о наборах ассоциаций не передаются на схеме, на следующей схеме показан пример наборов ассоциаций и наборов сущностей на основе этой модели.
В следующем примере показан набор сопоставлений () и два набора сущностей (PublishedByBooksиPublishers) на основе концептуальной модели, показанной выше. Bi в наборе Books сущностей представляет экземпляр типа сущности Book во время выполнения. Аналогичным образом Pj представляет Publisher экземпляр в наборе Publishers сущностей. BiPj представляет экземпляр ассоциации PublishedBy в наборе ассоциаций PublishedBy .
В 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>
Можно определить несколько наборов ассоциаций для каждой ассоциации, если два набора ассоциаций не используют конец набора ассоциаций. Следующий CSDL определяет контейнер сущностей с двумя наборами ассоциаций для связи WrittenBy. Обратите внимание, что для типов сущностей Book и Author определены несколько наборов сущностей, и что ни один набор ассоциаций не разделяет конец набора ассоциаций.
<EntityContainer Name="BooksContainer" >
<EntitySet Name="Books" EntityType="BooksModel.Book" />
<EntitySet Name="FictionBooks" EntityType="BooksModel.Book" />
<EntitySet Name="Publishers" EntityType="BooksModel.Publisher" />
<EntitySet Name="Authors" EntityType="BooksModel.Author" />
<EntitySet Name="FictionAuthors" 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>
<AssociationSet Name="FictionWrittenBy" Association="BooksModel.WrittenBy">
<End Role="Book" EntitySet="FictionBooks" />
<End Role="Author" EntitySet="FictionAuthors" />
</AssociationSet>
</EntityContainer>