Partager via


Ajouter une validation aux classes d’entité

Remarque

La DataSet classe et les classes associées sont des technologies .NET Framework héritées du début des années 2000 qui permettent aux applications d’utiliser des données en mémoire pendant que les applications sont déconnectées de la base de données. Les technologies sont particulièrement utiles pour les applications qui permettent aux utilisateurs de modifier les données et de conserver les modifications apportées à la base de données. Bien que les jeux de données soient une technologie éprouvée, l’approche recommandée pour les nouvelles applications .NET consiste à utiliser Entity Framework Core. Entity Framework offre un moyen plus naturel d’utiliser des données tabulaires en tant que modèles objet et dispose d’une interface de programmation plus simple.

La validation des classes d’entité est le processus de confirmation que les valeurs entrées dans des objets de données sont conformes aux contraintes dans le schéma d’un objet, ainsi qu’aux règles établies pour l’application. La validation des données avant d’envoyer des mises à jour à la base de données sous-jacente est une bonne pratique qui réduit les erreurs. Elle réduit également le nombre potentiel d’allers-retours entre une application et la base de données.

Les outils LINQ to SQL dans Visual Studio fournissent 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, les mises à jour et les suppressions d’entités complètes, ainsi que pendant et après les modifications de colonne individuelles.

Remarque

Cette rubrique fournit les étapes de base pour l’ajout de la validation aux classes d’entité à l’aide du Concepteur O/R. Étant donné qu’il peut être difficile de suivre ces étapes génériques sans faire référence à une classe d’entité spécifique, une procédure pas à pas qui utilise les données réelles est fournie.

Ajouter une validation pour les modifications apportées à la valeur dans une colonne spécifique

Cette procédure montre comment valider les données lorsque la valeur d’une colonne change. Étant donné que la validation est effectuée à l’intérieur de la définition de classe (au lieu de dans l’interface utilisateur), une exception est levée si la valeur provoque l’échec de la validation. Implémentez la gestion des erreurs pour le code de votre application qui tente de modifier les valeurs de colonne.

Remarque

Les instructions de cet article illustrent la version la plus récente de l’expérience de développement interactive (IDE) disponible dans Visual Studio. Votre ordinateur peut afficher différents noms ou emplacements pour certains des éléments de l’interface utilisateur. Vous utilisez peut-être une version différente de Visual Studio ou des paramètres d’environnement différents. Pour plus d’informations, consultez Personnaliser l’IDE.

Pour valider les données pendant la modification de valeur d’une colonne

  1. Ouvrez ou créez un fichier de classes LINQ to SQL (fichier .dbml) dans le Concepteur O/R. (Double-cliquez sur le .dbml fichier dans l’Explorateur de solutions.)

  2. Dans le Concepteur O/R, cliquez avec le bouton droit sur la classe pour laquelle vous souhaitez ajouter la validation, puis sélectionnez Afficher le code.

    L’Éditeur de code s’ouvre avec une classe partielle pour la classe d’entité sélectionnée.

  3. Placez le curseur dans la classe partielle.

  4. Pour les projets Visual Basic :

    1. Développez la liste Nom de la méthode.

    2. Recherchez la méthode OnCOLUMNNAMEChanging pour la colonne à laquelle vous souhaitez ajouter la validation.

    3. Une OnCOLUMNNAMEChanging méthode est ajoutée à la classe partielle.

    4. Ajoutez d’abord le code suivant pour vérifier qu’une valeur a été entrée, puis pour vous assurer que la valeur entrée pour la colonne est acceptable pour votre application. L’argument value contient la valeur proposée. Ajoutez donc une logique pour confirmer qu’il s’agit d’une valeur valide :

      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# :

    Étant donné que les projets C# ne génèrent pas automatiquement de gestionnaires d’événements, vous pouvez utiliser IntelliSense pour créer les méthodes partielles à modification de colonne. Tapez partial , puis un espace pour accéder à la liste des méthodes partielles disponibles. Cliquez sur la méthode de modification de colonne pour la colonne pour laquelle vous souhaitez ajouter la validation. Le code suivant ressemble au code généré lorsque vous sélectionnez une méthode partielle de modification de colonne :

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

Ajouter une validation pour les mises à jour à une classe d’entité

Outre la vérification des valeurs pendant les modifications, vous pouvez également valider les données lorsqu’une tentative est effectuée pour mettre à jour une classe d’entité complète. La validation lors d’une tentative de mise à jour vous permet de comparer des valeurs dans plusieurs colonnes si les règles métier le nécessitent. La procédure suivante montre comment valider quand une tentative est effectuée pour mettre à jour une classe d’entité complète.

Remarque

Le code de validation pour les mises à jour de classes d’entité complètes est exécuté dans la classe partielle (au lieu de la classe partielle DataContext d’une classe d’entité spécifique).

Pour valider les données pendant une mise à jour vers une classe d’entité

  1. Ouvrez ou créez un fichier de classes LINQ to SQL (fichier .dbml) dans le Concepteur O/R. (Double-cliquez sur le .dbml fichier dans l’Explorateur de solutions.)

  2. Cliquez avec le bouton droit sur une zone vide dans le Concepteur O/R , puis cliquez sur Afficher le code.

    L’Éditeur de code s’ouvre avec une classe partielle pour le DataContext.

  3. Placez le curseur dans la classe partielle pour le DataContext.

  4. Pour les projets Visual Basic :

    1. Développez la liste Nom de la méthode.

    2. Cliquez sur UpdateENTITYCLASSNAME.

    3. Une UpdateENTITYCLASSNAME méthode est ajoutée à la classe partielle.

    4. Accédez aux valeurs de colonne individuelles à l’aide de l’argument instance , comme indiqué dans le code suivant :

      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# :

    Étant donné que les projets C# ne génèrent pas automatiquement de gestionnaires d’événements, vous pouvez utiliser IntelliSense pour créer la méthode partielle UpdateCLASSNAME . Tapez partial , puis un espace pour accéder à la liste des méthodes partielles disponibles. Cliquez sur la méthode de mise à jour de la classe sur laquelle vous souhaitez ajouter la validation. Le code suivant ressemble au code généré lorsque vous sélectionnez une UpdateCLASSNAME méthode partielle :

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