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 en utilisant un fichier de mappage externe. Cette rubrique présente l'approche basée sur les attributs.

Dans sa forme de base, LINQ to SQL mappe une base de données à un DataContext, une table à une classe, ainsi que 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 Comment : générer le modèle objet en Visual Basic ou C#.

Les développeurs utilisant Visual Studio effectuent généralement un mappage basé sur des attributs à l’aide du Concepteur Objet Relationnel. Vous pouvez aussi utiliser l'outil en ligne de commande SQLMetal ou coder manuellement ces attributs. Pour plus d’informations, consultez Comment : générer le modèle objet en Visual Basic ou C#.

Notes

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 l'espace de noms System.Data.Linq.Mapping.

Attribut DatabaseAttribute

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

Propriété Type Default Description
Name String Consultez Name Utilisé avec sa propriété Name, 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 comme classe d'entité associée à une table ou une vue de base de données. LINQ to SQL traite les classes qui possèdent cet attribut comme des classes persistantes. Le tableau suivant décrit la propriété Name.

Propriété Type Default Description
Name String Même chaîne que le nom de la classe Désigne une classe comme une 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é comme représentant d'une colonne d'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 comme des colonnes sont récupérés et rendus persistants lorsque LINQ to SQL enregistre les modifications dans la base de données. Il est supposé que les membres sans cet attribut sont non persistants et ne sont pas soumis aux insertions ou mises à jour.

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

Propriété Type Default Description
AutoSync AutoSync 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 : Always, Never, OnUpdate, OnInsert.
CanBeNull Booléen true Indique qu'une colonne peut contenir des valeurs null.
DbType String Type déduit de colonne de base de données Utilise des types et des modificateurs de base de données pour spécifier le type de la colonne de base de données.
Expression String 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 comme horodatage ou numéro de version de base de données.
UpdateCheck UpdateCheck Always, à moins que IsVersion ait la valeur true pour un membre Spécifie l’approche de LINQ to SQL concernant la détection de conflits d’accès concurrentiel optimiste.

Pour plus d’informations, consultez ColumnAttribute.

Notes

Les valeurs des propriétés AssociationAttribute et ColumnAttribute Storage respectent la casse. Assurez-vous, par exemple que les valeurs utilisées dans l'attribut de la propriété AssociationAttribute.Storage correspondent à la casse 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é comment représentant une association dans la base de données, telle qu'une relation entre une clé étrangère et une 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é Type Default Description
DeleteOnNull Boolean 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 String None 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 qui représente 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 String ID de la classe connexe Désigne un ou plusieurs membres de la classe d'entité cible comme valeurs de clés de l'autre côté de l'association.
ThisKey String ID de la classe conteneur Désigne des membres de cette classe d'entité comme représentant les valeurs de clés sur ce côté de l'association.

Pour plus d’informations, consultez AssociationAttribute.

Notes

Les valeurs des propriétés AssociationAttribute et ColumnAttribute Storage respectent la casse. Assurez-vous, par exemple que les valeurs utilisées dans l'attribut de la propriété AssociationAttribute.Storage correspondent à la casse 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é Type Default Description
Code String Aucune. 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 Type Aucune. 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é Type Default Description
IsComposable Boolean false Si la valeur est false, indique le mappage à une procédure stockée. Si la valeur est true, indique le mappage à une fonction définie par l'utilisateur.
Name String Même chaîne 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 des 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é Type Default Description
DbType String None Spécifie le type de base de données.
Name String Même chaîne qu'un nom de 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é Type Default Description
Type Type (aucune) 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és.

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

Propriété Type Default Description
Name String Identique au nom dans la base de données Spécifie le nom de la table, de la colonne, etc.
Storage String Accesseurs publics Spécifie le nom du champ de stockage sous-jacent.

Pour plus d’informations, consultez DataAttribute.

Voir aussi