Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein Entitätssatz ist ein logischer Container für Instanzen eines Entitätstyps und Instanzen eines beliebigen Typs, der von diesem Entitätstyp abgeleitet ist. (Informationen zu abgeleiteten Typen finden Sie unter Entity Data Model: Vererbung.) Die Beziehung zwischen einem Entitätstyp und einem Entitätssatz entspricht der Beziehung zwischen einer Zeile und einer Tabelle in einer relationalen Datenbank: Wie eine Zeile beschreibt ein Entitätstyp die Datenstruktur, und wie eine Tabelle enthält ein Entitätssatz Instanzen einer bestimmten Struktur. Ein Entitätssatz ist kein Datenmodellierungskonstrukt; sie beschreibt nicht die Struktur der Daten. Stattdessen stellt ein Entitätssatz ein Konstrukt für eine Hosting- oder Speicherumgebung (z. B. die Common Language Runtime oder eine SQL Server-Datenbank) bereit, um Entitätstypinstanzen zu gruppieren, damit sie einem Datenspeicher zugeordnet werden können.
Ein Entitätssatz wird innerhalb eines Entitätscontainers definiert, bei dem es sich um eine logische Gruppierung von Entitätssätzen und Zuordnungssätzen handelt.
Damit eine Entitätstypinstanz in einem Entitätssatz vorhanden ist, muss Folgendes wahr sein:
Der Typ der Instanz ist entweder identisch mit dem Entitätstyp, auf dem der Entitätssatz basiert, oder der Typ der Instanz ist ein Untertyp des Entitätstyps.
Der Entitätsschlüssel für die Instanz ist innerhalb des Entitätssatzes eindeutig.
Die Instanz ist in keinem anderen Entitätssatz vorhanden.
Hinweis
Mehrere Entitätssätze können mit demselben Entitätstyp definiert werden, aber eine Instanz eines bestimmten Entitätstyps kann nur in einem Entitätssatz vorhanden sein.
Sie müssen keinen Entitätssatz für jeden Entitätstyp in einem konzeptionellen Modell definieren.
Beispiel
Das folgende Diagramm zeigt ein konzeptionelles Modell mit drei Entitätstypen: Book
, , Publisher
und Author
.
Das folgende Diagramm zeigt zwei Entitätssätze (Books
und Publishers
) und einen Zuordnungssatz (PublishedBy
) basierend auf dem oben gezeigten konzeptionellen Modell. Bi im Books
Entitätssatz stellt eine Instanz des Book
Entitätstyps zur Laufzeit dar. Ebenso stellt Pj eine Publisher
Instanz im Entitätssatz Publishers
dar. BiPj ist eine Instanz der PublishedBy
Verknüpfung im PublishedBy
Verknüpfungssatz.
Das ADO.NET Entity Framework verwendet eine domänenspezifische Sprache (DSL), die als konzeptuelle Schemadefinitionssprache (CSDL) bezeichnet wird, um konzeptionelle Modelle zu definieren. Die folgende CSDL definiert einen Entitätscontainer mit einem Entitätssatz für jeden Entitätstyp im oben gezeigten konzeptionellen Modell. Beachten Sie, dass der Name und der Entitätstyp für jeden Entitätssatz mithilfe von XML-Attributen definiert werden.
<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>
Es ist möglich, mehrere Entitätssätze pro Typ (MEST) zu definieren. Die folgende CSDL definiert einen Entitätscontainer mit zwei Entitätssätzen für den Entitätstyp Book
:
<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>