Share via


társításkészlet

A társításkészlet az azonos típusú társításpéldányok logikai tárolója. A társítási csoport nem adatmodellezési szerkezet; vagyis nem írja le az adatok vagy kapcsolatok szerkezetét. A társítási csoportok ehelyett egy üzemeltetési vagy tárolási környezet (például a közös nyelvi futtatókörnyezet vagy egy SQL Server-adatbázis) szerkezetét biztosítják a társítási példányok csoportosításához, hogy leképezhetők legyenek egy adattárra.

A társítási csoport egy entitástárolóban van definiálva, amely az entitáskészletek és a társítási csoportok logikai csoportosítása.

A társításkészlet definíciója a következő információkat tartalmazza:

Példa

Az alábbi ábrán egy fogalmi modell látható két társítással: PublishedByés WrittenBy. Bár a társítási csoportokra vonatkozó információk nem jelennek meg a diagramban, a következő diagram a modellen alapuló társítási csoportokra és entitáskészletekre mutat példát.

Example model with three entity types

Az alábbi példa egy társításkészletet () és két entitáskészletet (PublishedByBooksés Publishers) mutat be a fent bemutatott elméleti modell alapján. Az entitáskészlet bi értéke az BooksBook entitástípus egy példányát jelöli futásidőben. Hasonlóképpen, a Pj egy példányt Publisher jelöl az Publishers entitáskészletben. A BiPj a PublishedBy társítás egy példányát jelöli a PublishedBy társításkészletben.

Screenshot that shows a Sets example.

A ADO.NET Entity Framework egy tartományspecifikus nyelvet (DSL) használ, amelyet fogalmi sémadefiníciós nyelvnek (CSDL) hívunk a fogalmi modellek meghatározásához. Az alábbi CSDL egy entitástárolót határoz meg, amely a fenti ábrán szereplő összes társításhoz egy társítást állít be. Vegye figyelembe, hogy az egyes társítások neve és társítása XML-attribútumokkal van definiálva.

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

Társításonként több társításkészletet is meghatározhat, feltéve, hogy nincs két társításkészlet vége. Az alábbi CSDL egy entitástárolót határoz meg két társításkészlettel a WrittenBy társításhoz. Figyelje meg, hogy több entitáskészlet van definiálva az és Author az Book entitástípusokhoz, és hogy egyetlen társításkészlet sem oszt meg társításkészlet-végpontot.

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

Lásd még