Delen via


eigenschap

Eigenschappen zijn de fundamentele bouwstenen van entiteitstypen en complexe typen. Eigenschappen definiëren de shape en kenmerken van gegevens die een exemplaar van het entiteitstype of een complex type-exemplaar bevat. Eigenschappen in een conceptueel model zijn vergelijkbaar met eigenschappen die in een klasse zijn gedefinieerd. Op dezelfde manier als de eigenschappen van een klasse de vorm van de klasse definiëren en informatie over objecten bevatten, definiëren eigenschappen in een conceptueel model de vorm van een entiteitstype en bevatten informatie over instanties van entiteitstypen.

Notitie

Eigenschappen, zoals beschreven in dit onderwerp, verschillen van navigatie-eigenschappen. Zie navigatie-eigenschappen voor meer informatie.

Een eigenschapsdefinitie bevat de volgende informatie:

  • Een eigenschapsnaam. (Verplicht)

  • Een eigenschapstype. (Verplicht)

  • Een set facetten. (Optioneel)

Een eigenschap kan primitieve gegevens bevatten (zoals een tekenreeks, een geheel getal of een Booleaanse waarde) of gestructureerde gegevens (zoals een complex type). Eigenschappen die van primitief type zijn, worden ook wel scalaire eigenschappen genoemd. Zie Entiteitsgegevensmodel: Primitieve gegevenstypen voor meer informatie.

Notitie

Een complex type kan zelf eigenschappen hebben die complexe typen zijn.

Opmerking

In het onderstaande diagram ziet u een conceptueel model met drie entiteitstypen: Book, Publisheren Author. Elk entiteitstype heeft verschillende eigenschappen, hoewel typegegevens voor elke eigenschap niet worden overgebracht in het diagram. Eigenschappen die entiteitssleutels zijn, worden aangeduid met (sleutel).

Example model with three entity types

De ADO.NET Entity Framework maakt gebruik van een domeinspecifieke taal (DSL) genaamd conceptuele schemadefinitietaal (CSDL) om conceptuele modellen te definiëren. De volgende CSDL definieert het Book entiteitstype (zoals in het bovenstaande diagram wordt weergegeven) en geeft het type en de naam van elke eigenschap aan met behulp van XML-kenmerken. Een optioneel facet, Nullablewordt ook gedefinieerd met behulp van een XML-kenmerk.

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

Het is mogelijk dat een van de eigenschappen in het diagram een complexe eigenschap is. De Address eigenschap van het Publisher entiteitstype kan bijvoorbeeld een complexe typeeigenschap zijn die bestaat uit verschillende scalaire eigenschappen, zoals StreetAddress, City, StateOrProvince, en CountryPostalCode. De CSDL-weergave van een dergelijk complex type zou als volgt zijn:

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

Zie ook