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
, Publisher
en 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).
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, Nullable
wordt 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 Country
PostalCode
. 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>