facet

Une facette est utilisée pour ajouter des détails à une définition de propriété de type primitif. Une définition de propriété contient des informations sur le type de propriété, mais souvent, plus de détails sont nécessaires. Par exemple, un type d'entité dans un modèle conceptuel peut avoir une propriété de type String dont la valeur ne peut pas être null. Les facettes vous permettent de spécifier ce niveau de détail.

Le tableau suivant décrit les facettes prises en charge dans le modèle EDM.

Notes

Les valeurs et comportements exacts des facettes sont déterminés par l'environnement d'exécution qui utilise une implémentation EDM.

Facette Description S’applique à
Collation Spécifie la table de classement ou ordre de tri à utiliser lors de l'exécution d'opérations de comparaison et de tri sur des valeurs de la propriété. String
ConcurrencyMode Indique que la valeur de la propriété doit être utilisée pour des contrôles d'accès concurrentiel optimiste. Toutes les propriétés de type primitif
Default Spécifie la valeur par défaut de la propriété si aucune valeur n'est fournie en cas d'instanciation. Toutes les propriétés de type primitif
FixedLength Spécifie si la longueur de la valeur de propriété peut varier. Binary, String
MaxLength Spécifie la longueur maximale de la valeur de propriété. Binary, String
Nullable Spécifie si la propriété peut avoir une valeur null. Toutes les propriétés de type primitif
Precision Pour les propriétés de type Decimal, spécifie le nombre de chiffres qu'une valeur de propriété peut avoir. Pour les propriétés de type Time, DateTime et DateTimeOffset, spécifie le nombre de chiffres de la partie fractionnaire des secondes de la valeur de propriété. DateTime, DateTimeOffset, Decimal, Time,
Scale Spécifie le nombre de chiffres à droite de la virgule décimale pour la valeur de propriété. Decimal
Unicode Indique si la valeur de propriété est stockée au format Unicode. String

Exemple

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 un type d'entité Book. Notez que les facettes sont implémentées en tant qu'attributs XML. Les valeurs de facette indiquent qu'aucune propriété ne peut avoir la valeur null, et que les facettes Scale et Precision de la propriété Revision ont la valeur 29.

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

Voir aussi