hivatkozási integritási korlátozás
Az Entity Data Model (EDM) hivatkozási integritási kényszere hasonló a relációs adatbázisok hivatkozási integritási kényszeréhez. Ugyanúgy, ahogyan egy adatbázistábla oszlopai (vagy oszlopai) hivatkozhatnak egy másik tábla elsődleges kulcsára, egy entitástípus tulajdonsága (vagy tulajdonságai) hivatkozhatnak egy másik entitástípus entitáskulcsára. A hivatkozott entitástípus neve a kényszer fő vége . Az egyszerű végpontra hivatkozó entitástípust a kényszer függő végének nevezzük.
A hivatkozási integritási korlátozás két entitástípus közötti társítás részeként van definiálva. A hivatkozási integritási korlátozás definíciója a következő információkat határozza meg:
A kényszer fő vége. (Olyan entitástípus, amelynek entitáskulcsára a függő vég hivatkozik.)
Az egyszerű vég entitáskulcsa.
A kényszer függő vége. (Olyan entitástípus, amely rendelkezik olyan tulajdonsággal vagy tulajdonsággal, amely az egyszerű végpont entitáskulcsára hivatkozik.)
A függő vég hivatkozási tulajdonsága vagy tulajdonságai.
Az EDM-ben a hivatkozási integritási korlátozások célja annak biztosítása, hogy az érvényes társítások mindig létezhessenek. További információ: idegenkulcs-tulajdonság.
Példa
Az alábbi ábrán egy fogalmi modell látható két társítással: WrittenBy
és PublishedBy
. Az Book
entitástípusnak van egy tulajdonsága, PublisherId
amely az entitástípus entitáskulcsára Publisher
hivatkozik, amikor hivatkozási integritási korlátozást határoz meg a PublishedBy
társításon.
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 egy hivatkozási integritási korlátozást határoz meg a PublishedBy
fenti fogalmi modellben látható társításra.
<Association Name="PublishedBy">
<End Type="BooksModel.Book" Role="Book" Multiplicity="*" >
</End>
<End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" />
<ReferentialConstraint>
<Principal Role="Publisher">
<PropertyRef Name="Id" />
</Principal>
<Dependent Role="Book">
<PropertyRef Name="PublisherId" />
</Dependent>
</ReferentialConstraint>
</Association>