Schlüsselkonzepte im Entity Data ModelEntity Data Model Key Concepts

Der Entity Data Model (EDM) verwendet drei Schlüsselkonzepte, um die Struktur der Daten zu beschreiben: Entitätstyp, Zuordnungstypund Eigenschaft.The Entity Data Model (EDM) uses three key concepts to describe the structure of data: entity type, association type, and property. Diese sind die wichtigsten Konzepte zum Beschreiben der Datenstruktur in einer beliebigen Implementierung des EDM.These are the most important concepts in describing the structure of data in any implementation of the EDM.

EntitätstypEntity Type

Der Entitätstyp ist der grundlegende Baustein zum Beschreiben der Datenstruktur mit dem Entity Data Model.The entity type is the fundamental building block for describing the structure of data with the Entity Data Model. In einem konzeptionellen Modell werden Entitäts Typen aus Eigenschaften erstellt und beschreiben die Struktur von Konzepten der obersten Ebene, z. b. Kunden und Bestellungen in einer Geschäftsanwendung.In a conceptual model, entity types are constructed from properties and describe the structure of top-level concepts, such as a customers and orders in a business application. So wie eine Klassendefinition in einem Computerprogramm eine Vorlage für Instanzen der Klasse ist, ist ein Entitätstyp eine Vorlage für Entitäten.In the same way that a class definition in a computer program is a template for instances of the class, an entity type is a template for entities. Eine Entität stellt ein bestimmtes Objekt dar (z. B. einen bestimmter Kunde oder eine Bestellung).An entity represents a specific object (such as a specific customer or order). Jede Entität muss über einen eindeutigen Entitäts Schlüssel innerhalb einer Entitätenmengeverfügen.Each entity must have a unique entity key within an entity set. Eine Entitätenmenge ist eine Auflistung der Instanzen eines bestimmten Entitätstyps.An entity set is a collection of instances of a specific entity type. Entitätenmengen (und Zuordnungs Sätze) werden in einem Entitäts Containerlogisch gruppiert.Entity sets (and association sets) are logically grouped in an entity container.

Die Vererbung wird für Entitätstypen unterstützt; das heißt, ein Entitätstyp kann von einem anderen abgeleitet werden.Inheritance is supported with entity types: that is, one entity type can be derived from another. Weitere Informationen finden Sie unter Entity Data Model: Vererbung.For more information, see Entity Data Model: Inheritance.

ZuordnungstypAssociation Type

Ein Zuordnungstyp (auch als Zuordnung bezeichnet) ist der grundlegende Baustein zum Beschreiben von Beziehungen im Entity Data Model.An association type (also called an association) is the fundamental building block for describing relationships in the Entity Data Model. In einem konzeptionellen Modell stellt eine Zuordnung eine Beziehung zwischen zwei Entitätstypen dar (z. B. Customer und Order).In a conceptual model, an association represents a relationship between two entity types (such as Customer and Order). Jede Zuordnung verfügt über zwei Assoziations enden , die die Entitäts Typen angeben, die an der Zuordnung beteiligt sind.Every association has two association ends that specify the entity types involved in the association. Jedes Assoziationsende gibt auch eine Multiplizität des Zuordnungs Endes an, die die Anzahl der Entitäten angibt, die an diesem Ende der Zuordnung liegen kann.Each association end also specifies an association end multiplicity that indicates the number of entities that can be at that end of the association. Eine Multiplizität des Zuordnungs Endes kann über einen Wert von eins (1), NULL oder eins (0.. 1) oder viele (*) verfügen.An association end multiplicity can have a value of one (1), zero or one (0..1), or many (*). Auf Entitäten an einem Ende einer Zuordnung kann über Navigations Eigenschaftenoder Fremdschlüssel zugegriffen werden, wenn Sie für einen Entitätstyp verfügbar gemacht werden.Entities at one end of an association can be accessed through navigation properties, or through foreign keys if they are exposed on an entity type. Weitere Informationen finden Sie unter Fremdschlüssel Eigenschaft.For more information, see foreign key property.

In einer Anwendung stellt eine Instanz einer Zuordnung eine bestimmte Zuordnung dar (z. B. eine Zuordnung zwischen einer Instanz von Customer und einer Instanz von Order).In an application, an instance of an association represents a specific association (such as an association between an instance of Customer and instances of Order). Assoziations Instanzen werden in einem Zuordnungs Satzlogisch gruppiert.Association instances are logically grouped in an association set. Zuordnungs Sätze (und Entitätenmengen) werden in einem Entitäts Containerlogisch gruppiert.Association sets (and entity sets) are logically grouped in an entity container.

propertyProperty

Entitäts Typen enthalten Eigenschaften , die ihre Struktur und Merkmale definieren.Entity types contain properties that define their structure and characteristics. Ein Customer-Entitätstyp kann z. B. über Eigenschaften wie CustomerId, Name und Adress verfügen.For example, a Customer entity type may have properties such as CustomerId, Name, and Address.

Eigenschaften in einem konzeptionellen Modell sind analog zu Eigenschaften, die für eine Klasse in einem Computerprogramm definiert wurden.Properties in a conceptual model are analogous to properties defined on a class in a computer program. So wie Eigenschaften die Form einer Klasse definieren und Informationen zu Objekten enthalten definieren Eigenschaften in einem konzeptionellen Modell die Form eines Entitätstyps und enthalten Informationen zu Entitätstypinstanzen.In the same way that properties on a class define the shape of the class and carry information about objects, properties in a conceptual model define the shape of an entity type and carry information about entity type instances.

Eine Eigenschaft kann primitive Daten (z. B. eine Zeichenfolge, eine ganze Zahl oder einen booleschen Wert) oder strukturierte Daten (z. B. einen komplexen Typ) enthalten.A property can contain primitive data (such as a string, an integer, or a Boolean value), or structured data (such as a complex type). Weitere Informationen finden Sie unter Entity Data Model: primitive Datentypen.For more information, see Entity Data Model: Primitive Data Types.

Darstellungen eines konzeptionellen ModellsRepresentations of a Conceptual Model

Bei einem konzeptionellen Modell handelt es sich um eine spezifische Darstellung der Struktur einiger Daten als Entitäten und Beziehungen.A conceptual model is a specific representation of the structure of some data as entities and relationships. Eine Möglichkeit zur Darstellung eines konzeptionellen Modells ist ein Diagramm.One way to represent a conceptual model is with a diagram. Das folgende Diagramm stellt ein konzeptionelles Modell mit drei Entitätstypen (Book, Publisher und Author) sowie zwei Zuordnungen (PublishedBy und WrittenBy) dar:The following diagram represents a conceptual model with three entity types (Book, Publisher, and Author) and two associations (PublishedBy and WrittenBy):

Das Diagramm zeigt ein konzeptionelles Modell mit drei Entitäts Typen.

Diese Darstellung hat jedoch einige Nachteile beim Bereitstellen einiger Details zum Modell.This representation, however, has some shortcomings when it comes to conveying some details about the model. Informationen zu Eigenschaftentyp und Entitätenmenge werden z. B. nicht im Diagramm bereitgestellt.For example, property type and entity set information are not conveyed in the diagram. Der Umfang eines konzeptionellen Modells kann mit einer domänenspezifischen Sprache (DSL) deutlicher vermittelt werden.The richness of a conceptual model can be conveyed more clearly with a domain-specific language (DSL). Der ADO.NET-Entity Framework verwendet eine XML-basierte DSL namens konzeptionelle Schema Definitions Sprache (CSDL), um konzeptionelle Modelle zu definieren.The ADO.NET Entity Framework uses an XML-based DSL called conceptual schema definition language (CSDL) to define conceptual models. Das Folgende ist die CSDL-Definition des oben im Diagramm gezeigten konzeptionellen Modells:The following is the CSDL definition of the conceptual model in the diagram above:

  <Schema xmlns="http://schemas.microsoft.com/ado/2008/09/edm"
          xmlns:cg="http://schemas.microsoft.com/ado/2006/04/codegeneration"
          xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator"
          Namespace="BooksModel" Alias="Self">
    <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>
    <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>
    <EntityType Name="Publisher">
      <Key>
        <PropertyRef Name="Id" />
      </Key>
      <Property Type="Int32" Name="Id" Nullable="false" />
      <Property Type="String" Name="Name" Nullable="false" />
      <Property Type="String" Name="Address" Nullable="false" />
      <NavigationProperty Name="Books" Relationship="BooksModel.PublishedBy"
                          FromRole="Publisher" ToRole="Book" />
    </EntityType>
    <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>
<Association Name="PublishedBy">
      <End Type="BooksModel.Book" Role="Book" Multiplicity="*" />
      <End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" />
    </Association>
    <Association Name="WrittenBy">
      <End Type="BooksModel.Book" Role="Book" Multiplicity="*" />
      <End Type="BooksModel.Author" Role="Author" Multiplicity="*" />
    </Association>
  </Schema>

Siehe auchSee also