Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az entitáskulcs az identitás meghatározására használt entitástípustulajdonsága vagy tulajdonságkészlete. Az entitáskulcsot alkotó tulajdonságok a tervezéskor lesznek kiválasztva. Az entitáskulcs-tulajdonságok értékeinek egyedileg kell azonosítaniuk a futtatókörnyezetben beállított entitástípus-példányokat. Az entitáskulcsot alkotó tulajdonságokat úgy kell kiválasztani, hogy garantálják az entitáskészlet példányainak egyediségét.
Az alábbi követelmények vonatkoznak arra, hogy egy tulajdonságcsoport entitáskulcs legyen:
Az entitáskészleten belül nincs két azonos entitáskulcs. Ez azt jelenti, hogy az entitáskészleten belüli két entitás esetében a kulcsokat alkotó összes tulajdonság értékei nem lehetnek azonosak. Az entitáskulcsot alkotó értékek némelyike (de nem az összes) azonos lehet.
Az entitáskulcsnak nem null értékű, nem módosítható , primitív típusú tulajdonságokból kell állnia.
Az adott entitástípushoz tartozó entitáskulcsot alkotó tulajdonságok nem módosíthatók. Egy adott entitástípushoz nem engedélyezhet egynél több lehetséges entitáskulcsot; a helyettesítő kulcsok nem támogatottak.
Ha egy entitás egy öröklési hierarchiában vesz részt, a gyökérentitásnak tartalmaznia kell az entitáskulcsot alkotó összes tulajdonságot, az entitáskulcsot pedig a legfelső szintű entitástípuson kell meghatározni. További információ: Entity Data Model: Öröklés.
példa
Az alábbi ábrán egy három entitástípussal rendelkező fogalmi modell látható: Book, Publisherés Author. Az entitáskulcsot alkotó egyes entitástípusok tulajdonságai a következővel vannak jelölve: "(Key)". Vegye figyelembe, hogy az Author entitástípusnak van egy entitáskulcsa, amely két tulajdonságból áll: Name és Address.
A ADO.NET Entity Framework egy tartományspecifikus nyelvet (DSL) használ, amelyet fogalmi sémadefiníciós nyelvnek (CSDL) nevezünk a fogalmi modellek definiálásához. Az alábbi CSDL a Book fenti ábrán látható entitástípust határozza meg. Vegye figyelembe, hogy az entitáskulcs az entitástípus tulajdonságára való hivatkozással van definiálva ISBN .
<EntityType Name="Book">
<Key>
<PropertyRef Name="ISBN" />
</Key>
<Property Type="String" Name="ISBN" Nullable="false" />
<Property Type="String" Name="Title" Nullable="false" />
<Property Type="Decimal" Name="Revision" Nullable="false" Precision="29" Scale="29" />
<NavigationProperty Name="Publisher" Relationship="BooksModel.PublishedBy"
FromRole="Book" ToRole="Publisher" />
<NavigationProperty Name="Authors" Relationship="BooksModel.WrittenBy"
FromRole="Book" ToRole="Author" />
</EntityType>
A ISBN tulajdonság jó választás az entitáskulcshoz, mert egy nemzetközi standard könyvszám (ISBN) egyedileg azonosít egy könyvet.
Az alábbi CSDL a Author fenti ábrán látható entitástípust határozza meg. Vegye figyelembe, hogy az entitáskulcs két tulajdonságból Name és Address.
<EntityType Name="Author">
<Key>
<PropertyRef Name="Name" />
<PropertyRef Name="Address" />
</Key>
<Property Type="String" Name="Name" Nullable="false" />
<Property Type="String" Name="Address" Nullable="false" />
<NavigationProperty Name="Books" Relationship="BooksModel.WrittenBy"
FromRole="Author" ToRole="Book" />
</EntityType>
Az Name és Address használata az entitáskulcs számára ésszerű választás, mivel valószínűtlen, hogy két azonos nevű szerző ugyanazon a címen él. Az entitáskulcsok kiválasztása azonban nem garantálja teljesen az entitáskészlet egyedi entitáskulcsait. Ebben az esetben javasolt olyan tulajdonság hozzáadása, mint AuthorId, amely a szerző egyedi azonosítására használható.