társítás típusa
A társítási típus (más néven társítás) az entitásadat-modellben (EDM) lévő kapcsolatok leírásának alapvető építőeleme. Egy elméleti modellben a társítás két entitástípus (például Customer
és Order
) közötti kapcsolatot jelöl. Az alkalmazásokban a társítás egy példánya egy adott társítás (például egy példány Customer
és egy példány közötti társítás Order
). A társításpéldányok logikailag egy társításhalmazba vannak csoportosítva.
A társítás definíciója a következő információkat tartalmazza:
Egyedi név. (Kötelező)
Két társítás véget ér, egyet a kapcsolat minden entitástípusához. (Kötelező)
Feljegyzés
A társítások nem jelölhetők kétnél több entitástípus közötti kapcsolatot. Egy társítás azonban definiálhat egy önkapcsolatot úgy, hogy minden társítási végponthoz ugyanazt az entitástípust adja meg.
Hivatkozási integritási korlátozás. (Nem kötelező)
Minden társításvégnek meg kell adnia egy társításvégzület-szorzást , amely a társítás egyik végén található entitástípus-példányok számát jelzi. A társítás végsokszorosságának értéke lehet egy (1), nulla vagy egy (0..1) vagy több (*). A társítás egyik végén található entitástípus-példányok navigációs tulajdonságokon vagy idegen kulcsokon keresztül érhetők el, ha egy entitástípuson vannak közzétéve. További információ: Entity Data Model: Foreign Keys.
Példa
Az alábbi ábrán egy fogalmi modell látható két társítással: PublishedBy
és WrittenBy
. A társítás vége a PublishedBy
társítás és az Publisher
Book
entitástípusok. A vég szorzása Publisher
egy (1), a vég szorzása Book
pedig sok (*), ami azt jelzi, hogy a kiadó sok könyvet tesz közzé, és egy könyvet egy kiadó tesz közzé.
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. A következő CSDL határozza meg a PublishedBy
fenti ábrán látható társításokat:
<Association Name="PublishedBy">
<End Type="BooksModel.Book" Role="Book" Multiplicity="*" />
<End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" />
</Association>