Élément Property (CSDL)
L'élément Property dans le langage CSDL (Conceptual Schema Definition Language) peut être un enfant de l'élément EntityType, de l'élément ComplexType ou de l'élément RowType.
Applications des éléments EntityType et ComplexType
Les éléments Property (comme enfants des éléments EntityType ou ComplexType) définissent la forme et les caractéristiques des données qu'une instance de type d'entité ou de type complexe contiendra. Les propriétés dans un modèle conceptuel sont analogues aux propriétés qui sont 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é.
L'élément Property peut avoir les éléments enfants suivants (dans l'ordre répertorié) :
élément Documentation (zéro ou un élément autorisé) ;
éléments d'annotation (zéro, un ou plusieurs éléments autorisés).
Les facettes suivantes peuvent être appliquées à un élément Property : Nullable, DefaultValue, MaxLength, FixedLength, Precision, Scale, Unicode, Collation, ConcurrencyMode. Les facettes sont des attributs XML qui fournissent des informations sur la manière dont les valeurs de propriété sont stockées dans la banque de données. Pour plus d'informations, consultez Facettes (CSDL).
Remarque : |
---|
Les facettes peuvent être appliquées uniquement aux propriétés du type EDMSimpleType .Pour plus d'informations, consultez Types de modèle conceptuel. |
Attributs applicables
Le tableau ci-dessous décrit les attributs qui peuvent s'appliquer à l'élément Property.
Nom d'attribut | Requis | Valeur |
---|---|---|
Name |
Oui |
Nom de la propriété. |
Type |
Oui |
Type de la valeur de propriété. Le type de la valeur de propriété doit être EDMSimpleType ou un type complexe (indiqué par un nom qualifié complet) qui est dans la portée du modèle. Pour plus d'informations, consultez Types de modèle conceptuel. |
Nullable |
Non |
True (valeur par défaut) ou False selon que la propriété peut avoir ou non une valeur NULL.
Remarque :
Dans la version du langage CSDL indiquée par l'espace de noms https://schemas.microsoft.com/ado/2006/04/edm, une propriété de type complexe doit avoir
Nullable="False" .
|
DefaultValue |
Non |
Valeur par défaut de la propriété. |
MaxLength |
Non |
Longueur maximale de la valeur de propriété. |
FixedLength |
Non |
True ou False selon que la valeur de propriété sera stockée ou non comme une chaîne de longueur fixe. |
Precision |
Non |
Précision de la valeur de propriété. |
Scale |
Non |
Échelle de la valeur de propriété. |
Unicode |
Non |
True ou False selon que la valeur de propriété sera stockée ou non comme une chaîne Unicode. |
Collation |
Non |
Chaîne qui spécifie l'ordre de classement à utiliser dans la source de données. |
ConcurrencyMode |
Non |
None (valeur par défaut) ou Fixed. Si la valeur est définie sur Fixed, la valeur de propriété sera utilisée dans les contrôles d'accès concurrentiel optimiste. |
Remarque : |
---|
Un nombre quelconque d'attributs d'annotation (attributs XML personnalisés) peut être appliqué à l'élément Property.Toutefois, les attributs personnalisés ne peuvent pas appartenir à un espace de noms XML réservé pour le langage CSDL.Les noms qualifiés complets de deux attributs personnalisés quelconques ne peuvent pas être identiques. |
Exemple
L'exemple suivant illustre un élément EntityType avec trois éléments Property :
<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>
L'exemple suivant illustre un élément ComplexType avec cinq éléments Property :
<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>
Application de l'élément RowType
Les éléments Property (comme enfants d'un élément RowType) définissent la forme et les caractéristiques des données qui peuvent être passées à une fonction définie par modèle ou retournées par une telle fonction. Pour plus d'informations, consultez Élément Function (CSDL).
L'élément Property peut avoir exactement un des éléments enfants suivants :
L'élément Property peut avoir un nombre quelconque d'éléments d'annotation enfants.
Remarque : |
---|
Les éléments d'annotation sont autorisés uniquement dans les modèles conceptuels pour les applications qui ciblent le .NET Framework version 4 ou ultérieure.L'espace de noms XML de tels modèles est https://schemas.microsoft.com/ado/2008/09/edm. |
Attributs applicables
Le tableau ci-dessous décrit les attributs qui peuvent s'appliquer à l'élément Property.
Nom d'attribut | Requis | Valeur |
---|---|---|
Name |
Oui |
Nom de la propriété. |
Type |
Oui |
Type de la valeur de propriété. |
Nullable |
Non |
True (valeur par défaut) ou False selon que la propriété peut avoir ou non une valeur NULL.
Remarque :
Dans la version du langage CSDL indiquée par l'espace de noms https://schemas.microsoft.com/ado/2006/04/edm, une propriété de type complexe doit avoir
Nullable="False" .
|
DefaultValue |
Non |
Valeur par défaut de la propriété. |
MaxLength |
Non |
Longueur maximale de la valeur de propriété. |
FixedLength |
Non |
True ou False selon que la valeur de propriété sera stockée ou non comme une chaîne de longueur fixe. |
Precision |
Non |
Précision de la valeur de propriété. |
Scale |
Non |
Échelle de la valeur de propriété. |
Unicode |
Non |
True ou False selon que la valeur de propriété sera stockée ou non comme une chaîne Unicode. |
Collation |
Non |
Chaîne qui spécifie l'ordre de classement à utiliser dans la source de données. |
Remarque : |
---|
Un nombre quelconque d'attributs d'annotation (attributs XML personnalisés) peut être appliqué à l'élément Property.Toutefois, les attributs personnalisés ne peuvent pas appartenir à un espace de noms XML réservé pour le langage CSDL.Les noms qualifiés complets de deux attributs personnalisés quelconques ne peuvent pas être identiques. |
Exemple
L'exemple suivant illustre des éléments Property utilisés pour définir la forme du type de retour d'une fonction définie par modèle.
<Function Name="LastNamesAfter">
<Parameter Name="someString" Type="Edm.String" />
<ReturnType>
<CollectionType>
<RowType>
<Property Name="FirstName" Type="Edm.String" Nullable="false" />
<Property Name="LastName" Type="Edm.String" Nullable="false" />
</RowType>
</CollectionType>
</ReturnType>
<DefiningExpression>
SELECT VALUE ROW(p.FirstName, p.LastName)
FROM SchoolEntities.People AS p
WHERE p.LastName >= somestring
</DefiningExpression>
</Function>
Voir aussi
Concepts
Vue d'ensemble d'Entity Framework
Spécification CSDL
Élément Schema (CSDL)
Élément FunctionImport (CSDL)
Autres ressources
Spécifications CSDL, SSDL et MSL
ADO.NET Entity Data Model Tools
property (Entity Data Model)
facet (Entity Data Model)