Mappage basé sur les attributs (LINQ to SQL)
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. Pour plus d'informations, consultez Concepteur Objet/Relationnel (Concepteur O/R) et Concepteur Objet/Relationnel (Concepteur O/R) et Concepteur Objet/Relationnel (Concepteur O/R). 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 |
Par défaut |
Description |
---|---|---|---|
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 |
Par défaut |
Description |
---|---|---|---|
Chaîne |
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 |
Par défaut |
Description |
---|---|---|---|
AutoSync |
Never |
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. |
|
Boolean |
true |
Indique qu'une colonne peut contenir des valeurs Null. |
|
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. |
|
Chaîne |
Vide |
Définit une colonne calculée dans une base de données. |
|
Boolean |
false |
Indique qu'une colonne contient des valeurs générées automatiquement par la base de données. |
|
Booléen |
false |
Indique que la colonne contient une valeur de discriminateur pour une hiérarchie d'héritage LINQ to SQL. |
|
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. |
|
Booléen |
false |
Identifie le type de colonne du membre comme horodatage ou numéro de version de base de données. |
|
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 |
Par défaut |
Description |
---|---|---|---|
Boolean |
false |
Placé sur une association 1:1 dont tous les membres de clé étrangère sont non Nullable, supprime l'objet lorsque l'association a la valeur Null. |
|
Chaîne |
Aucune |
Ajoute le comportement de suppression à une association. |
|
Boolean |
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. |
|
Booléen |
false |
Si la valeur est True, indique une contrainte d'unicité sur la clé étrangère. |
|
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. |
|
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 |
Par défaut |
Description |
---|---|---|---|
Chaîne |
Aucune. La valeur doit être fournie. |
Spécifie la valeur de code du discriminateur. |
|
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 |
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 |
Par défaut |
Description |
---|---|---|---|
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. |
|
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 |
Par défaut |
Description |
---|---|---|---|
Chaîne |
Aucune |
Spécifie le type de base de données. |
|
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 |
Par défaut |
Description |
---|---|---|---|
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 |
Par défaut |
Description |
---|---|---|---|
Chaîne |
Identique au nom dans la base de données |
Spécifie le nom de la table, de la colonne, etc. |
|
Chaîne |
Accesseurs publics |
Spécifie le nom du champ de stockage sous-jacent. |
Pour plus d'informations, consultez DataAttribute.