Comment : ajouter une validation aux classes d’entitéHow to: Add validation to entity classes

Validation les classes d’entité est le processus consistant à confirmer que les valeurs entrées dans des objets de respecter les contraintes dans les schémas d’un objet et également aux règles établies pour l’application.Validating entity classes is the process of confirming that the values entered into data objects comply with the constraints in an object's schema, and also to the rules established for the application. Il est conseillé de valider les données avant d'envoyer des mises à jour à la base de données sous-jacente pour réduire les erreurs.Validating data before you send updates to the underlying database is a good practice that reduces errors. Une telle validation permet aussi de réduire le nombre potentiel d'allers-retours entre une application et la base de données.It also reduces the potential number of round trips between an application and the database.

Le LINQ to SQL Tools dans Visual Studio fournit des méthodes partielles qui permettent aux utilisateurs d’étendre le code généré par le concepteur qui s’exécute pendant les insertions, mises à jour et des suppressions d’entités complètes et également pendant et après la colonne individuelle modifications.The LINQ to SQL Tools in Visual Studio provides partial methods that enable users to extend the designer-generated code that runs during Inserts, Updates, and Deletes of complete entities, and also during and after individual column changes.

Note

Cette rubrique fournit les étapes de base pour ajouter une validation aux classes d'entité à l'aide du Concepteur O/RO/R Designer.This topic provides the basic steps for adding validation to entity classes by using the Concepteur O/RO/R Designer. Ces étapes génériques risqueraient d'être difficiles à suivre sans faire référence à une classe d'entité spécifique. Une procédure pas à pas utilisant les données réelles est donc fournie.Because it might be difficult to follow these generic steps without referring to a specific entity class, a walkthrough that uses actual data has been provided.

Ajout d’une validation pour la modification d’une valeur dans une colonne spécifiqueAdding Validation for Changes to the Value in a Specific Column

Cette procédure indique comment valider des données lorsque la valeur d'une colonne change.This procedure shows how to validate data when the value in a column changes. La validation est effectuée dans la définition de classe (plutôt que dans l'interface utilisateur) et, de ce fait, une exception est levée si la valeur provoque l'échec de la validation.Because the validation is performed inside the class definition (instead of in the user interface) an exception is thrown if the value causes validation to fail. Implémentez la gestion des erreurs pour le code de votre application qui essaie de modifier les valeurs de colonne.Implement error handling for the code in your application that attempts to change the column values.

Note

Il est possible que pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués dans les instructions suivantes.Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments.The Visual Studio edition that you have and the settings that you use determine these elements. Pour plus d'informations, consultez Personnalisation de l'IDE.For more information, see Personalizing the IDE.

Pour valider des données pendant la modification de valeur d'une colonneTo validate data during a column's value change

  1. Ouvrez ou créez un nouveau fichier LINQ to SQL Classes (.dbml fichier) dans le Concepteur O/RO/R Designer.Open or create a new LINQ to SQL Classes file (.dbml file) in the Concepteur O/RO/R Designer. (Double-cliquez sur le .dbml fichier l’Explorateur de solutions.)(Double-click the .dbml file in Solution Explorer.)

  2. Dans le Concepteur O/R, cliquez sur la classe pour laquelle vous souhaitez ajouter la validation, puis cliquez sur afficher le Code.In the O/R Designer, right-click the class for which you want to add validation and then click View Code.

    Une classe partielle pour la classe d'entité sélectionnée s'ouvre dans l'éditeur de code.The Code Editor opens with a partial class for the selected entity class.

  3. Placez le curseur dans la classe partielle.Place the cursor in the partial class.

  4. Pour les projets Visual Basic :For Visual Basic projects:

    1. Développez le nom de la méthode liste.Expand the Method Name list.

    2. Recherchez le OnCOLUMNNAMEChanging méthode pour la colonne que vous souhaitez ajouter la validation.Locate the OnCOLUMNNAMEChanging method for the column you want to add validation to.

    3. Un OnCOLUMNNAMEChanging méthode est ajoutée à la classe partielle.An OnCOLUMNNAMEChanging method is added to the partial class.

    4. Ajoutez le code suivant pour vérifier tout d'abord qu'une valeur a bien été entrée, puis pour garantir que la valeur entrée dans la colonne est acceptable dans votre application.Add the following code to first verify that a value has been entered and then to ensure that the value entered for the column is acceptable for your application. L'argument value contient la valeur proposée. Vous devez donc ajouter la logique pour confirmer qu'il s'agit d'une valeur valide :The value argument contains the proposed value, so add logic to confirm that it is a valid value:

      If value.HasValue Then  
          ' Add code to ensure that the value is acceptable.  
          ' If value < 1 Then  
          '    Throw New Exception("Invalid data!")  
          ' End If  
      End If  
      

    Pour les projets C# :For C# projects:

    Étant donné que les projets c# ne génèrent pas automatiquement les gestionnaires d’événements, vous pouvez utiliser IntelliSense pour créer les méthodes partielles de modification de colonne.Because C# projects do not automatically generate event handlers, you can use IntelliSense to create the column-changing partial methods. Tapez partial, puis un espace pour accéder à la liste de méthodes partielles disponibles.Type partial and then a space to access the list of available partial methods. Cliquez sur la méthode de modification de colonne de la colonne à laquelle la validation doit être ajoutée.Click the column-changing method for the column you want to add validation for. Le code suivant ressemble au code qui est généré lorsque vous sélectionnez une méthode partielle de modification de colonne :The following code resembles the code that is generated when you select a column-changing partial method:

    partial void OnCOLUMNNAMEChanging(COLUMNDATATYPE value)  
        {  
           throw new System.NotImplementedException();  
        }  
    

Ajout d’une validation pour les mises à jour d’une classe d’entitéAdding Validation for Updates to an Entity Class

Outre la vérification des valeurs lors des modifications, vous avez la possibilité de valider les données lors d'une tentative de mise à jour d'une classe d'entité complète.In addition to checking values during changes, you can also validate data when an attempt is made to update a complete entity class. La validation pendant une tentative de mise à jour vous permet de comparer des valeurs dans plusieurs colonnes si les règles métier le demandent.Validation during an attempted update enables you to compare values in multiple columns if business rules require this. La procédure suivante indique comment effectuer la validation lors d'une tentative de mise à jour d'une classe d'entité complète.The following procedure shows how to validate when an attempt is made to update a complete entity class.

Note

Le code de validation pour les mises à jour des classes d'entité est exécuté dans la classe partielle DataContext (plutôt qu'en dehors de la classe partielle d'une classe d'entité spécifique).Validation code for updates to complete entity classes is executed in the partial DataContext class (instead of in the partial class of a specific entity class).

Pour valider des données pendant une mise à jour de classe d'entitéTo validate data during an update to an entity class

  1. Ouvrez ou créez un nouveau fichier LINQ to SQL Classes (.dbml fichier) dans le Concepteur O/RO/R Designer.Open or create a new LINQ to SQL Classes file (.dbml file) in the Concepteur O/RO/R Designer. (Double-cliquez sur le .dbml fichier l’Explorateur de solutions.)(Double-click the .dbml file in Solution Explorer.)

  2. Avec le bouton droit sur le Concepteur O/R, une zone vide, puis cliquez sur afficher le Code.Right-click an empty area on the O/R Designer and click View Code.

    Une classe partielle pour le DataContext s'ouvre dans l'éditeur de code.The Code Editor opens with a partial class for the DataContext.

  3. Placez le curseur dans la classe partielle pour le DataContext.Place the cursor in the partial class for the DataContext.

  4. Pour les projets Visual Basic :For Visual Basic projects:

    1. Développez le nom de la méthode liste.Expand the Method Name list.

    2. Cliquez sur UpdateENTITYCLASSNAME.Click UpdateENTITYCLASSNAME.

    3. Un UpdateENTITYCLASSNAME méthode est ajoutée à la classe partielle.An UpdateENTITYCLASSNAME method is added to the partial class.

    4. Accédez aux valeurs des colonnes individuelles à l'aide de l'argument instance, comme illustré par le code suivant :Access individual column values by using the instance argument, as shown in the following code:

      If (instance.COLUMNNAME = x) And (instance.COLUMNNAME = y) Then  
          Dim ErrorMessage As String = "Invalid data!"  
          Throw New Exception(ErrorMessage)  
      End If  
      

    Pour les projets C# :For C# projects:

    Étant donné que les projets c# ne génèrent pas automatiquement les gestionnaires d’événements, vous pouvez utiliser IntelliSense pour créer le partielle UpdateCLASSNAME (méthode).Because C# projects do not automatically generate event handlers, you can use IntelliSense to create the partial UpdateCLASSNAME method. Tapez partial, puis un espace pour accéder à la liste de méthodes partielles disponibles.Type partial and then a space to access the list of available partial methods. Cliquez sur la méthode de mise à jour pour la classe concernée.Click the update method for the class you want to add validation for. Le code suivant ressemble au code qui est généré lorsque vous sélectionnez un UpdateCLASSNAME méthode partielle :The following code resembles the code that is generated when you select an UpdateCLASSNAME partial method:

    partial void UpdateCLASSNAME(CLASSNAME instance)  
    {  
        if ((instance.COLUMNNAME == x) && (instance.COLUMNNAME = y))  
        {  
            string ErrorMessage = "Invalid data!";  
            throw new System.Exception(ErrorMessage);  
        }  
    }  
    

Voir aussiSee also

LINQ to SQL des outils dans Visual Studio LINQ to SQL Tools in Visual Studio
Validation des donnéesValidating Data
LINQ to SQL (.NET Framework)LINQ to SQL (.NET Framework)