Delen via


koppelingsset

Een koppelingsset is een logische container voor koppelingsexemplaren van hetzelfde type. Een koppelingsset is geen gegevensmodelleringsconstructie; Dat wil gezegd, het beschrijft niet de structuur van gegevens of relaties. In plaats daarvan biedt een koppelingsset een constructie voor een hosting- of opslagomgeving (zoals de algemene taalruntime of een SQL Server-database) om koppelingsexemplaren te groeperen, zodat deze kunnen worden toegewezen aan een gegevensarchief.

Een koppelingsset wordt gedefinieerd in een entiteitscontainer. Dit is een logische groepering van entiteitssets en koppelingssets .

Een definitie voor een koppelingsset bevat de volgende informatie:

  • De naam van de koppelingsset. (Verplicht)

  • De koppeling waarvan deze exemplaren bevat. (Verplicht)

  • Twee koppelingssets eindigen.

Opmerking

In het onderstaande diagram ziet u een conceptueel model met twee koppelingen: PublishedBy, en WrittenBy. Hoewel informatie over koppelingssets niet wordt overgebracht in het diagram, ziet u in het volgende diagram een voorbeeld van koppelingssets en entiteitssets op basis van dit model.

Example model with three entity types

In het volgende voorbeeld ziet u een koppelingsset (PublishedBy) en twee entiteitssets (Books en Publishers) op basis van het conceptuele model dat hierboven wordt weergegeven. Bi in de Books entiteitsset vertegenwoordigt een exemplaar van het Book entiteitstype tijdens runtime. Op dezelfde manier vertegenwoordigt Pj een Publisher exemplaar in de Publishers entiteitsset. BiPj vertegenwoordigt een exemplaar van de PublishedBy koppeling in de PublishedBy koppelingsset.

Screenshot that shows a Sets example.

De ADO.NET Entity Framework maakt gebruik van een domeinspecifieke taal (DSL) genaamd conceptuele schemadefinitietaal (CSDL) om conceptuele modellen te definiëren. De volgende CSDL definieert een entiteitscontainer met één koppelingsset voor elke koppeling in het bovenstaande diagram. Houd er rekening mee dat de naam en koppeling voor elke koppelingsset worden gedefinieerd met behulp van XML-kenmerken.

<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>

Het is mogelijk om meerdere koppelingssets per koppeling te definiëren, zolang geen twee koppelingssets een einde van een koppelingsset delen. De volgende CSDL definieert een entiteitscontainer met twee koppelingssets voor de WrittenBy koppeling. U ziet dat er meerdere entiteitssets zijn gedefinieerd voor de Book entiteitstypen en Author dat geen koppelingsset een einde van een koppelingsset deelt.

<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>

Zie ook