Freigeben über


Eigentum

Eigenschaften sind die grundlegenden Bausteine von Entitätstypen und komplexen Typen. Eigenschaften definieren das Shape und die Merkmale von Daten, die eine Entitätstypinstanz oder komplexe Typinstanz enthalten. Eigenschaften in einem konzeptionellen Modell sind analog zu Eigenschaften, die für eine Klasse definiert sind. Auf die gleiche Weise, wie Eigenschaften einer Klasse die Form der Klasse definieren und Informationen zu Objekten tragen, definieren Eigenschaften in einem konzeptionellen Modell die Form eines Entitätstyps und tragen Informationen zu Entitätstypinstanzen.

Hinweis

Eigenschaften, wie in diesem Thema beschrieben, unterscheiden sich von Navigationseigenschaften. Weitere Informationen finden Sie unter Navigationseigenschaften.

Eine Eigenschaftsdefinition enthält die folgenden Informationen:

  • Ein Eigenschaftsname. (Erforderlich)

  • Ein Eigenschaftstyp. (Erforderlich)

  • Eine Reihe von Facets. (Optional)

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. Eigenschaften, die vom primitiven Typ sind, werden auch als skalare Eigenschaften bezeichnet. Weitere Informationen finden Sie unter Entity Data Model: Primitive Datentypen.

Hinweis

Ein komplexer Typ kann selbst Eigenschaften aufweisen, die komplexe Typen sind.

Beispiel

Das folgende Diagramm zeigt ein konzeptionelles Modell mit drei Entitätstypen: Book, , Publisherund Author. Jeder Entitätstyp verfügt über mehrere Eigenschaften, obwohl Typinformationen für jede Eigenschaft nicht im Diagramm vermittelt werden. Eigenschaften, die Entitätsschlüssel sind, werden mit (Schlüssel) gekennzeichnet.

Beispielmodell mit drei Entitätstypen

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 den Book Entitätstyp (wie im obigen Diagramm dargestellt) und gibt den Typ und den Namen jeder Eigenschaft mithilfe von XML-Attributen an. Ein optionales Facet Nullablewird auch mithilfe eines XML-Attributs definiert.

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

Es ist möglich, dass eine der eigenschaften, die im Diagramm angezeigt werden, eine komplexe Typeigenschaft ist. Die Eigenschaft für den Entitätstyp kann beispielsweise eine komplexe Typeigenschaft sein, AddressPublisherdie aus mehreren skalaren Eigenschaften wie , , StreetAddress, City, StateOrProvinceund Country.PostalCode Die CSDL-Darstellung eines solchen komplexen Typs wäre wie folgt:

<ComplexType Name="Address" >
  <Property Type="String" Name="StreetAddress" Nullable="false" />
  <Property Type="String" Name="City" Nullable="false" />
  <Property Type="String" Name="StateOrProvince" Nullable="false" />
  <Property Type="String" Name="Country" Nullable="false" />
  <Property Type="String" Name="PostalCode" Nullable="false" />
</ComplexType>

Siehe auch