Votre façon de valider l'entrée est très fragile. Vous excluez toute entrée possible (pour le CustomerId dans ce cas) et désinfectez-la quand elle est demandée. Cela peut fonctionner dans ce scénario de base, mais dans de nombreux cas, vous ne pouvez pas nettoyer l'entrée. Vous corrigez fondamentalement les erreurs de l'utilisateur et faites des suppositions de ce qu'il voulait. Comment allez-vous faire avec une adresse mail? Par exemple, l'adresse postale «stevenhotmail.com» doit-elle être convertie en «[email protected]» ou en «[email protected]»? En plus de cela, il y a aussi la possibilité d'une erreur de programmation. Souhaitez-vous que votre programme tente de corriger vos propres erreurs de programmation. Cela vous donnera mal à la tête. Ou que ferez-vous lorsque deux propriétés de la même entité doivent être comparées?
Une meilleure solution serait de permettre à l'entité de devenir dans un état invalide et de vérifier sa validité juste avant de l'enregistrer dans la base de données. Lorsque son état n'est pas valide, n'essayez pas de corriger automatiquement les modifications, mais lancez simplement une exception ou renvoyez les erreurs à l'utilisateur.
Il existe plusieurs approches pour ce faire. Vous pouvez par exemple implémenter une méthode IsValid()
sur chaque entité ou utiliser un cadre de validation.
Pouvez-vous donner plus de détails sur ce que vous utilisez? De quelle technologie s'agit-il? Quelle technologie de base de données utilisez-vous et comment interagissez-vous avec elle? Est-ce la bibliothèque web/windows/WPF/class? –
Désolé C'est dans un classlibray. Je construis une bibliothèque pour une application qui synchronise 2 bases de données. Mon problème est qu'ils permettent différentes longueurs pour les champs dans les tables. La vérification de null est parce que j'obtiens une erreur lors de l'ajout de paramètres à une requête sql lors de la fourniture d'une valeur nulle. – Zwempha