Partager via


Mappage basé sur les attributs (LINQ to SQL)

Mise à jour : November 2007

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 Procédure : générer le modèle objet en Visual Basic ou C# (LINQ to SQL).

Les développeurs qui utilisent Visual Studio effectuent en général un mappage basé sur les attributs à l'aide du Concepteur Objet/Relationnel. Vous pouvez également utiliser l'outil en ligne de commande SQLMetal ou coder manuellement ces attributs. Pour plus d'informations, consultez Procédure : générer le modèle objet en Visual Basic ou C# (LINQ to SQL).

Remarque :

Vous pouvez également mapper à l'aide d'un fichier XML externe. Pour plus d'informations, consultez Référence de mappage externe (LINQ to SQL).

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

Valeur par défaut

Description

Name

Chaîne

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

Valeur par défaut

Description

Name

Chaîne

Même chaîne que le nom de 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

Valeur par défaut

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

Chaîne

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

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

Remarque :

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 Procédure : mapper des relations de base de données (LINQ to SQL).

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

Propriété

Type

Valeur par défaut

Description

DeleteOnNull

Booléen

false

Placé sur une association 1:1 dont aucun membre de clé étrangère n'autorise les valeurs null, supprime l'objet lorsque l'association a la valeur null.

DeleteRule

Chaîne

Aucune

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

Chaîne

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

Chaîne

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.

Remarque :

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

Valeur par défaut

Description

Code

Chaîne

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

Valeur par défaut

Description

IsComposable

Booléen

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

Chaîne

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

Valeur par défaut

Description

DbType

Chaîne

Aucune

Spécifie le type de base de données.

Name

Chaîne

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

Valeur par défaut

Description

Type

Type

(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és.

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

Propriété

Type

Valeur par défaut

Description

Name

Chaîne

Identique au nom dans la base de données

Spécifie le nom de la table, de la colonne, etc.

Storage

Chaîne

Accesseurs publics

Spécifie le nom du champ de stockage sous-jacent.

Pour plus d'informations, consultez DataAttribute.

Voir aussi

Autres ressources

Référence (LINQ to SQL)