Share via


entitáskulcs

Az entitáskulcs az identitás meghatározására használt entitástípus tulajdonságavagy 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 egy entitástípus-példányt egy futtatáskor beállított entitáson belül. 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 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ípus egy két tulajdonságból Name és Addressegy .

Example model with three entity types

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 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 entitáskulcs használata és Address használata Name ésszerű választás, mivel két azonos nevű szerző nem valószínű, hogy 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 egy olyan tulajdonság hozzáadása javasolt, amely AuthorIda szerző egyedi azonosítására használható.

Lásd még