Entitätenmengeentity set

Ein Entitätenmenge ist ein logischer Container für Instanzen von einem Entitätstyp und Instanzen eines beliebigen Typs, der von diesem Entitätstyp abgeleitet.An entity set is a logical container for instances of an entity type and instances of any type derived from that entity type. (Weitere Informationen zu abgeleiteten Typen finden Sie unter Entity Data Model: Vererbung.) Die Beziehung zwischen einem Entitätstyp und einer Entitätenmenge ist analog zur Beziehung zwischen einer Zeile und eine Tabelle in einer relationalen Datenbank: Wie eine Zeile beschreibt ein Entitätstyp Datenstruktur, und wie eine Tabelle enthält ein Entitätssatz Instanzen einer bestimmten Struktur.(For information about derived types, see Entity Data Model: Inheritance.) The relationship between an entity type and an entity set is analogous to the relationship between a row and a table in a relational database: Like a row, an entity type describes data structure, and, like a table, an entity set contains instances of a given structure. Eine Entitätenmenge ist keine Datenmodellkonstruktion, sie beschreibt keine Datenstruktur.An entity set is not a data modeling construct; it does not describe the structure of data. Vielmehr stellt eine Entitätenmenge eine Konstruktion für eine Hosting- oder Speicherumgebung (z. B. die Common Language Runtime oder eine SQL Server-Datenbank) zum Gruppieren von Entitätstypinstanzen bereit, damit diese einem Datenspeicher zugeordnet werden können.Instead, an entity set provides a construct for a hosting or storage environment (such as the common language runtime or a SQL Server database) to group entity type instances so that they can be mapped to a data store.

Eine Entitätenmenge wird definiert, innerhalb einer Entitätscontainer, dies ist eine logische Gruppierung von Entitätenmengen und Zuordnungssätze.An entity set is defined within an entity container, which is a logical grouping of entity sets and association sets.

Die folgenden Voraussetzungen müssen erfüllt sein, damit eine Entitätstypinstanz in einer Entitätenmenge existiert:For an entity type instance to exist in an entity set, the following must be true:

  • Der Typ der Instanz stimmt entweder mit dem Entitätstyp überein, auf dem die Entitätenmenge basiert, oder der Typ der Instanz ist ein Untertyp des Entitätstyps.The type of the instance is either the same as the entity type on which the entity set is based, or the type of the instance is a subtype of the entity type.

  • Die Entitätsschlüssel für die Instanz innerhalb der Entitätenmenge eindeutig ist.The entity key for the instance is unique within the entity set.

  • Die Instanz ist in keiner anderen Entitätenmenge vorhanden.The instance does not exist in any other entity set.

    Hinweis

    Mehrere Entitätenmengen können mit dem gleichen Entitätstyp definiert werden, aber eine Instanz eines bestimmten Entitätstyps kann nur in einer Entitätenmenge vorhanden sein.Multiple entity sets can be defined using the same entity type, but an instance of a given entity type can only exist in one entity set.

Sie müssen nicht für jeden Entitätstyp in einem konzeptionellen Modell eine Entitätenmenge definieren.You do not have to define an entity set for each entity type in a conceptual model.

BeispielExample

Die unten stehende Abbildung zeigt ein konzeptionelles Modell mit drei Entitätstypen: Book, Publisher und Author.The diagram below shows a conceptual model with three entity types: Book, Publisher, and Author.

Beispielmodell mit drei Entitätstypen

Die folgende Abbildung zeigt zwei Entitätenmengen (Books und Publishers) und einen Zuordnungssatz (PublishedBy) auf Grundlage des oben gezeigten konzeptionellen Modells.The following diagram shows two entity sets (Books and Publishers) and an association set (PublishedBy) based on the conceptual model shown above. BI in der Books Entitätenmenge stellt eine Instanz von der Book Entitätstyp zur Laufzeit.Bi in the Books entity set represents an instance of the Book entity type at run time. Auf ähnliche Weise darstellen von Pj eine Publisher -Instanz der Publishers Entitätenmenge.Similarly, Pj represent a Publisher instance in the Publishers entity set. BiPj stellt eine Instanz von der PublishedBy Zuordnung in der PublishedBy Zuordnungssatz.BiPj represents an instance of the PublishedBy association in the PublishedBy association set.

Screenshot, ein Beispiel für Gruppen zeigt.

Die ADO.NET Entity Framework verwendet eine domänenspezifische Sprache (DSL) Bezeichnung konzeptionelle Schemadefinitionssprache (CSDL), konzeptionelle Modelle zu definieren.The ADO.NET Entity Framework uses a domain-specific language (DSL) called conceptual schema definition language (CSDL) to define conceptual models. Die folgende CSDL definiert einen Entitätscontainer mit einer Entitätenmenge für jeden Entitätstyp im oben gezeigten konzeptionellen Modell.The following CSDL defines an entity container with one entity set for each entity type in the conceptual model shown above. Beachten Sie, dass der Name und der Entitätstyp für jede Entitätenmenge mit XML-Attributen definiert werden.Note that the name and entity type for each entity set are defined using XML attributes.

<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>

Pro Typ (MEST) können mehrere Entitätssätze definiert werden.It is possible to define multiple entity sets per type (MEST). Die folgende CSDL definiert einen Entitätscontainer mit zwei Entitätenmengen für den Book-Entitätstyp:The following CSDL defines an entity container with two entity sets for the Book entity type:

<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>

Siehe auchSee also