Partager via


Mappage basé sur les attributs

LINQ to SQL mappe une base de données SQL Server à un modèle objet LINQ to SQL en appliquant des attributs ou à l’aide d’un fichier de mappage externe. Cette rubrique décrit l’approche basée sur les attributs.

Dans sa forme la plus élémentaire, LINQ to SQL mappe une base de données à un DataContext, une table à une classe et des colonnes et des relations aux propriétés sur ces classes. Vous pouvez également utiliser des attributs pour mapper une hiérarchie d’héritage dans votre modèle objet. Pour plus d’informations, consultez How to : Generate the Object Model in Visual Basic or C#.

Les développeurs utilisant Visual Studio effectuent généralement un mappage basé sur des attributs à l’aide du Concepteur relationnel d’objet. Vous pouvez également utiliser l’outil en ligne de commande SQLMetal, ou vous pouvez coder manuellement les attributs vous-même. Pour plus d’informations, consultez How to : Generate the Object Model in Visual Basic or C#.

Remarque

Vous pouvez également mapper à l’aide d’un fichier XML externe. Pour plus d’informations, consultez Mappage externe.

Les sections suivantes décrivent plus en détail le mappage basé sur les attributs. Pour plus d’informations, consultez le System.Data.Linq.Mapping espace de noms.

Attribut DatabaseAttribute

Utilisez cet attribut pour spécifier le nom par défaut de la base de données lorsqu’un nom n’est pas fourni par la connexion. Cet attribut est facultatif, mais si vous l’utilisez, vous devez appliquer la Name propriété, comme décrit dans le tableau suivant.

Propriété Catégorie Par défaut Descriptif
Name Chaîne Voir Name Utilisé avec sa Name propriété, spécifie le nom de la base de données.

Pour plus d’informations, consultez DatabaseAttribute.

Attribut TableAttribute

Utilisez cet attribut pour désigner une classe en tant que classe d’entité associée à une table ou vue de base de données. LINQ to SQL traite les classes qui ont cet attribut comme des classes persistantes. Le tableau suivant décrit la Name propriété.

Propriété Catégorie Par défaut Descriptif
Name Chaîne Même chaîne que le nom de la classe Désigne une classe en tant que classe d’entité associée à une table de base de données.

Pour plus d’informations, consultez TableAttribute.

Attribut ColumnAttribute

Utilisez cet attribut pour désigner un membre d’une classe d’entité pour représenter une colonne dans une table de base de données. Vous pouvez appliquer cet attribut à n’importe quel champ ou propriété.

Seuls les membres que vous identifiez en tant que colonnes sont récupérés et conservés lorsque LINQ to SQL enregistre les modifications apportées à la base de données. Les membres sans cet attribut sont supposés être non persistants et ne sont pas soumis pour les insertions ou mises à jour.

Le tableau suivant décrit les propriétés de cet attribut.

Propriété Catégorie Par défaut Descriptif
AutoSync Synchronisation automatique Jamais Indique au Common Language Runtime (CLR) de récupérer la valeur après une opération d’insertion ou de mise à jour.

Options : Toujours, Jamais, Lors de la mise à jour, Lors de l'insertion.
CanBeNull Booléen true Indique qu’une colonne peut contenir des valeurs Null.
DbType Chaîne Type de colonne de base de données déduite Utilise des types de base de données et des modificateurs pour spécifier le type de la colonne de base de données.
Expression Chaîne Vide Définit une colonne calculée dans une base de données.
IsDbGenerated Booléen false Indique qu’une colonne contient des valeurs générées automatiquement par la base de données.
IsDiscriminator Booléen false Indique que la colonne contient une valeur de discriminateur pour une hiérarchie d’héritage LINQ to SQL.
IsPrimaryKey Booléen false Spécifie que ce membre de classe représente une colonne qui est une clé primaire ou fait partie des clés primaire de la table.
IsVersion Booléen false Identifie le type de colonne du membre en tant qu’horodatage de base de données ou numéro de version.
UpdateCheck UpdateCheck Always, à moins que IsVersion ait la valeur true pour un membre Spécifie comment LINQ to SQL aborde la détection des conflits de concurrence optimiste.

Pour plus d’informations, consultez ColumnAttribute.

Remarque

Les valeurs des propriétés AssociationAttribute et ColumnAttribute Storage respectent la casse. Par exemple, vérifiez que les valeurs utilisées dans l’attribut de la propriété AssociationAttribute.Storage correspondent au cas des noms de propriétés correspondants utilisés ailleurs dans le code. Cela s’applique à tous les langages de programmation .NET, y compris à ceux qui ne respectent généralement pas la casse, notamment Visual Basic. Pour plus d'informations sur la propriété Storage, consultez DataAttribute.Storage.

Attribut AssociationAttribute

Utilisez cet attribut pour désigner une propriété pour représenter une association dans la base de données, telle qu’une clé étrangère à la relation de clé primaire. Pour plus d’informations sur les relations, consultez Guide pratique pour mapper des relations de base de données.

Le tableau suivant décrit les propriétés de cet attribut.

Propriété Catégorie Par défaut Descriptif
DeleteOnNull Booléen false Placé sur une association dont tous les membres de clé étrangère sont non Nullable, supprime l'objet lorsque l'association a la valeur Null.
DeleteRule Chaîne Aucun Ajoute le comportement de suppression à une association.
IsForeignKey Booléen false Si la valeur est true, désigne le membre comme clé étrangère dans une association représentant une relation de base de données.
IsUnique Booléen false Si la valeur est true, indique une contrainte d’unicité sur la clé étrangère.
OtherKey Chaîne ID de la classe associée Désigne un ou plusieurs membres de la classe d’entité cible comme valeurs de clé de l’autre côté de l’association.
ThisKey Chaîne ID de la classe conteneur Désigne les membres de cette classe d’entité pour représenter les valeurs de clé de ce côté de l’association.

Pour plus d’informations, consultez AssociationAttribute.

Remarque

Les valeurs des propriétés AssociationAttribute et ColumnAttribute Storage respectent la casse. Par exemple, vérifiez que les valeurs utilisées dans l’attribut de la propriété AssociationAttribute.Storage correspondent au cas des noms de propriétés correspondants utilisés ailleurs dans le code. Cela s’applique à tous les langages de programmation .NET, y compris à ceux qui ne respectent généralement pas la casse, notamment Visual Basic. Pour plus d'informations sur la propriété Storage, consultez DataAttribute.Storage.

Attribut InheritanceMappingAttribute

Utilisez cet attribut pour mapper une hiérarchie d’héritage.

Le tableau suivant décrit les propriétés de cet attribut.

Propriété Catégorie Par défaut Descriptif
Code Chaîne Aucun. La valeur doit être fournie. Spécifie la valeur de code du discriminateur.
IsDefault Booléen false Si la valeur est true, instancie un objet de ce type lorsqu'aucune valeur de discriminateur du magasin ne correspond à l'une des valeurs spécifiées.
Type Catégorie Aucun. La valeur doit être fournie. Spécifie le type de la classe dans la hiérarchie.

Pour plus d’informations, consultez InheritanceMappingAttribute.

Attribut FunctionAttribute

Utilisez cet attribut pour désigner une méthode comme représentant une procédure stockée ou une fonction définie par l’utilisateur dans la base de données.

Le tableau suivant décrit les propriétés de cet attribut.

Propriété Catégorie Par défaut Descriptif
IsComposable Booléen false Si la valeur est « false », cela indique un mappage vers une procédure stockée. Si la valeur est true, indique le mappage à une fonction définie par l’utilisateur.
Name Chaîne Même chaîne de caractères que le nom dans la base de données Spécifie le nom de la procédure stockée ou de la fonction définie par l’utilisateur.

Pour plus d’informations, consultez FunctionAttribute.

Attribut ParameterAttribute

Utilisez cet attribut pour mapper les paramètres d’entrée sur les méthodes de procédure stockée.

Le tableau suivant décrit les propriétés de cet attribut.

Propriété Catégorie Par défaut Descriptif
DbType Chaîne Aucun Spécifie le type de base de données.
Name Chaîne Même chaîne que le nom du paramètre dans la base de données Spécifie un nom pour le paramètre.

Pour plus d’informations, consultez ParameterAttribute.

Attribut ResultTypeAttribute

Utilisez cet attribut pour spécifier un type de résultat.

Le tableau suivant décrit les propriétés de cet attribut.

Propriété Catégorie Par défaut Descriptif
Type Catégorie (Aucun) Utilisé sur les méthodes mappées aux procédures stockées qui retournent IMultipleResults. Déclare les mappages de type valide ou attendu pour la procédure stockée.

Pour plus d’informations, consultez ResultTypeAttribute.

Attribut DataAttribute

Utilisez cet attribut pour spécifier des noms et des champs de stockage privé.

Le tableau suivant décrit les propriétés de cet attribut.

Propriété Catégorie Par défaut Descriptif
Name Chaîne Identique au nom dans la base de données Spécifie le nom de la table, de la colonne, et ainsi de suite.
Storage Chaîne Accesseurs publics Spécifie le nom du champ de stockage sous-jacent.

Pour plus d’informations, consultez DataAttribute.

Voir aussi