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:
A társításkészlet neve. (Kötelező)
Az a társítás, amelynek példányait tartalmazza. (Kötelező)
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.
Az alábbi példa egy társításkészletet () és két entitáskészletet (PublishedBy
Books
és Publishers
) mutat be a fent bemutatott elméleti modell alapján. Az entitáskészlet bi értéke az Books
Book
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.
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>