propriété
Les propriétés sont les blocs de construction fondamentaux des types d’entité et des types complexes. Les propriétés définissent la forme et les caractéristiques des données qui sont contenues dans une instance de type d'entité ou une instance de type complexe. Les propriétés dans un modèle conceptuel sont analogues aux propriétés définies sur une classe. De même que les propriétés sur une classe définissent la forme de la classe et acheminent des informations sur les objets, les propriétés dans un modèle conceptuel définissent la forme d'un type d'entité et acheminent des informations sur les instances de type d'entité.
Notes
Les propriétés, comme décrit dans cette rubrique, sont différentes des propriétés de navigation. Pour plus d’informations, consultez Propriétés de navigation.
Une définition de propriété contient les informations suivantes :
Nom de la propriété. (Obligatoire)
Type de propriété. (Obligatoire)
Jeu de facettes. (facultatif)
Une propriété peut contenir des données de type primitif (comme une chaîne, un entier ou une valeur booléenne) ou des données structurées (comme un type complexe). Les propriétés de type primitif sont également appelées des propriétés scalaires. Pour plus d’informations, consultez Entity Data Model : Types de données primitifs.
Notes
Un type complexe peut lui-même avoir des propriétés qui sont des types complexes.
Exemple
Le diagramme suivant montre un modèle conceptuel avec trois types d'entités : Book
, Publisher
et Author
. Chaque type d'entité possède plusieurs propriétés, bien que les informations de type pour chaque propriété ne soient pas représentées dans le diagramme. Les propriétés correspondant à des clés d’entité sont signalées par (Key).
ADO.NET Entity Framework utilise un langage spécifique à un domaine (DSL), appelé CSDL (Conceptual Schema Definition Language), pour définir des modèles conceptuels. Le CSDL suivant définit le type d'entité Book
(tel que présenté dans le diagramme ci-dessus) et indique le type et le nom de chaque propriété à l'aide d'attributs XML. Une facette facultative, Nullable
, est également définie à l'aide d'un attribut XML.
<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>
Il est possible que l'une des propriétés présentées dans le diagramme soit une propriété de type complexe. Par exemple, la propriété Address
sur le type d'entité Publisher
peut être une propriété de type complexe composée de plusieurs propriétés scalaires, telles que StreetAddress
, City
, StateOrProvince
, Country
et PostalCode
. Voici la représentation CSDL d'un tel type complexe :
<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>