Megosztás a következőn keresztül:


entitáskészlet

Az entitáskészlet egy logikai tároló egy entitástípus példányai és az adott entitástípusból származtatott bármilyen típusú példányok számára. (A származtatott típusokkal kapcsolatos információkért lásd: Entitás adatmodellje: Öröklés.) Az entitástípus és az entitáskészlet közötti kapcsolat hasonló a relációs adatbázisban lévő sorok és táblák közötti kapcsolathoz: Az entitástípus a sorhoz hasonlóan az adatstruktúrát írja le, és egy entitáskészlethez hasonlóan egy adott struktúra példányait is tartalmazza. Az entitáskészletek nem adatmodellezési szerkezetek; nem írja le az adatok szerkezetét. Az entitáskészletek 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 az entitástípus-példányok csoportosításához, hogy leképezhetők legyenek egy adattárra.

Egy entitáskészlet egy entitástárolóban van definiálva, amely az entitáskészletek és a társítási csoportok logikai csoportosítása.

Ahhoz, hogy egy entitástípus-példány létezni lehessen egy entitáskészletben, a következőknek igaznak kell lenniük:

  • A példány típusa megegyezik azzal az entitástípussal, amelyen az entitáskészlet alapul, vagy a példány típusa az entitástípus altípusa.

  • A példány entitáskulcsa egyedi az entitáskészleten belül.

  • A példány nem létezik más entitáskészletekben.

    Feljegyzés

    Több entitáskészlet is definiálható ugyanazzal az entitástípussal, de egy adott entitástípus példánya csak egy entitáskészletben létezhet.

Nem kell definiálnia egy entitáskészletet az egyes entitástípusokhoz egy fogalmi modellben.

Példa

Az alábbi ábrán egy három entitástípussal rendelkező fogalmi modell látható: Book, Publisherés Author.

Example model with three entity types

Az alábbi ábra két entitáskészletet (Books és ) és Publishersegy társítási csoportot (PublishedBy) mutat be a fent bemutatott fogalmi 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.

Screenshot that shows a Sets example.

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, amelynek minden entitástípusához egy entitás van beállítva a fent látható elméleti modellben. Vegye figyelembe, hogy az egyes entitáskészletek neve és entitástípusa 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ípusonként (MEST) több entitáskészlet is definiálható. A következő CSDL egy entitástárolót határoz meg két entitáskészlettel az Book entitástípushoz:

<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" />
  <AssociationSet Name="PublishedBy" Association="BooksModel.PublishedBy">
    <End Role="Book" EntitySet="Books" />
    <End Role="Publisher" EntitySet="Publishers" />
  </AssociationSet>
  <AssociationSet Name="BookAuthor" Association="BooksModel.BookAuthor">
    <End Role="Book" EntitySet="Books" />
    <End Role="Author" EntitySet="Authors" />
  </AssociationSet>
</EntityContainer>

Lásd még