Share via


É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é) :

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

Notes

Les facettes peuvent être appliquées uniquement aux propriétés du type EDMSimpleType .Pour plus d'informations, consultez Types de modèles conceptuels (CSDL).

Attributs applicables

Le tableau ci-dessous décrit les attributs qui peuvent s'appliquer à l'élément Property.

Nom d'attribut

Requis

Value

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èles conceptuels (CSDL).

Nullable

Non

True (valeur par défaut) ou False selon que la propriété peut avoir ou non une valeur NULL.

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

Notes

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.

Notes

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

Value

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.

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

Notes

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 &gt;= somestring
  </DefiningExpression>
</Function>

Voir aussi

Concepts

Vue d'ensemble d'Entity Framework

Spécification CSDL

Élément Schema (CSDL)

propriété

facette

Élément FunctionImport (CSDL)

Autres ressources

Spécifications CSDL, SSDL et MSL

ADO.NET Entity Data Model Tools