IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ADO.NET Discussion :

Gestion des DbUpdateException avec Violation de la contrainte PRIMARY KEY


Sujet :

ADO.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Points : 16
    Points
    16
    Par défaut Gestion des DbUpdateException avec Violation de la contrainte PRIMARY KEY
    Bonjour à tous

    Je ne sais pas si ma question est une question de débutant, mais j'ai actuellement un problème avec la validation des mes entités au niveau base de donnée.

    J'utilise :
    .Net Framework 4
    MVC 4
    Code First
    Entity Framework

    Tous les contrôles qui doivent être réalisé (Required, StringLenght, ...) sont fait par le code des entités dans les annotations, ainsi que par les contrôleurs.

    Par contre, je me retrouve avec un petit problème sur la partie validation coté DataBase.

    Pour la partie ForgeinKey, je fais attention de bien fournir des valeurs de clé primaire de mes jointures, même si il m'arrive encore de fournir de mauvaise valeur.

    Par contre, toute la partie Contrainte gérer par la BD ainsi que les PrimaryKeys, je n'arrive pas à trouver comment les gérer proprement. Je soumet mes entités et je me retrouve avec une DbUpdateException qui n'est quasiment pas exploitable.

    Ma question est donc, y a t'il une étape de validation par rapport à la BD a faire avant le DbContext.SaveChanges(), ou bien une solution pour traiter proprement le retour de la BD avec son DbUpdateException.

    Merci d'avance pour vos informations, questions, hypothèse de recherche et toute autre chose pouvant m'aider.
    Thomas

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Avant d'appeler DbContext.SaveChanges() pourquoi ne pas compléter la validation de tes entités par un lookup (une simple requête SELECT) vers la table de référence ? Cela te permettra ainsi de vérifier la cohérence des données avant la sauvegarde.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Alors oui, j'y ai bien pensé, mais dans le genre tout automatisé, je souhaité savoir si il existé un système pour ne pas avoir à gérer toutes mes entités une à une avec une vérification de chaque entité à la main.

    Mais c'est claire que si je ne peux avoir une interaction rapide et facile avec la base de donnée, je vais me faire une validation avec de beau petit sélecte pour gérer les PrimaryKey et les contraintes Unique.

    Merci quand même.

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    De toute manière il n'est pas possible d'avoir quelque chose de 100% automatique, car il faut bien choisir l'une des valeurs possibles, mais comment ton code pourrait-il deviner à coup sûr quelle est la bonne valeur ? Donc oui le mieux c'est de passer par cette étape de validation, et si ce n'est pas valide, alors on remonte un message à l'utilisateur.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

Discussions similaires

  1. Gestion des transactions avec les composants DOA
    Par lper dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/12/2008, 16h06
  2. Violation de la contrainte PRIMARY KEY
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 14/12/2007, 10h43
  3. Gestion des factures avec interbase
    Par AlexB59 dans le forum Bases de données
    Réponses: 1
    Dernier message: 25/10/2005, 12h05
  4. Gestion des cookies avec Indy 10
    Par membrax dans le forum Web & réseau
    Réponses: 5
    Dernier message: 21/09/2005, 18h44
  5. Class de gestion des images avec rotation
    Par Johnny Boy dans le forum MFC
    Réponses: 1
    Dernier message: 03/05/2005, 11h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo