Partager via


Contraintes de type (EDM)

Le modèle EDM (Modèle de données d'entité) autorise la spécification de contraintes sur les propriétés de ses types d'entités. Les contraintes limitent les valeurs possibles d'une propriété et vérifient qu'une valeur affectée à une propriété est non seulement du type de données approprié, mais aussi qu'elle est valide pour les spécifications commerciales de l'application.

Contrainte nullable

Toute propriété peut être contrainte à l'aide de la contrainte Nullable. La contrainte Nullable est la forme de contrainte la plus simple et spécifie si une propriété peut ne pas avoir de valeur ou avoir la valeur Null.

La propriété Key d'une entité permet d'identifier les instances du type dans les applications. Une valeur doit être affectée à la propriété Key au moment de la création de l'entité. La contrainte Nullable est toujours requise sur la propriété d'une entité qui contient Key et affecter la valeur false à la contrainte Nullable empêche l'instanciation d'entités dépourvues d'identificateurs.

Le schéma ci-dessous spécifie des contraintes Nullable sur les propriétés du type Person. La propriété EMailID peut avoir la valeur Null, mais une valeur doit être affectée à Name, faute de quoi une erreur d'exécution se produira lorsque le code enregistrera le type dans le stockage.

    <EntityType Name="Person">
        <Key>
            <PropertyRef Name="Name" />
        </Key>
        <Property Name="Name" Type="String" Nullable="false" />
        <Property Name="EmailID" Type="String" Nullable="false" />
        <Property Name="Address" Type="AddressType" Nullable="true" />
        <Property Name="PhoneNumber" Type="String" />
    </EntityType>

Comme dans SQL Server, la valeur par défaut de l'attribut Null est true. Dans cet exemple, les propriétés Address et PhoneNumber peuvent ne pas avoir de valeur.

Attribut Default

L'attribut Default spécifie une valeur pour une propriété si aucune valeur n'est fournie lorsqu'une instance de l'entité est créée. Dans l'exemple suivant la propriété Locale a comme valeur par défaut NW Region si aucune autre valeur n'est fournie lorsqu'un nouveau Customer est instancié.

    <EntityType Name="Customer">
        <Key>
            <PropertyRef Name="CustomerId" />
        </Key>
        <Property Name="CustomerId" Type="String" Nullable="false" />
        <Property Name="Name" Type="String" Nullable="false" />
        <Property Name="Locale" Type="String" Default="NW Region"/>
        <!--Other Properties-->
    </EntityType>

Voir aussi

Concepts

Attributs GetterAccess et SetterAccess (CSDL)
Types simples (EDM)