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

ASP.NET Discussion :

Erreur DbEntityValidation Exception


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 25
    Points : 13
    Points
    13
    Par défaut Erreur DbEntityValidation Exception
    Bonjours j'obtient l'erreur "dbentityValidation exception" lorsque j'execute ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     using(var _db = new AgesaContext())
                {
                     _db.Travails.Add(unStage);
                   _db.SaveChanges();
     
                }
    unStage est de type stage qui herite de travail voici mes classes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
        public abstract class Travail
        {
     
            [Key]
            public Int32 TravailID{get;set;}
            [Required]
            [DataType(DataType.Date)]
            [Display(Name = "Date début")]
            public DateTime dateDebut { get; set; }
            [Required]
            [DataType(DataType.Date)]
            [Display(Name = "Date fin")]
            public DateTime dateFin { get; set; }
            [DataType(DataType.Text)]
            [Range(0,10)]
            [Display(Name = "Note de l'ambiance")]
            public Int32 noteAmbiance { get; set; }
            public string commentaire { get; set; }
            [Required]
            public virtual Site site { get; set; }
            public virtual List<Mission> lesMissions { get; set; }
            [Required]
            public virtual TypeTravail typeTravail { get; set; }
            [Required]
            public virtual Etudiant etudiant { get; set; }
            public Travail()
            {
                lesMissions = new List<Mission>();
     
            }
     
        }
     
    [Table("Stage")]
        public class Stage :Travail
        {
     
     
            [Display(Name = "Le stage est il rémunéré ?")]
            public bool estRemunerer { get; set; }
     
     
            [Display(Name="Montant de la rémunération")]
            public Int32 montantRemuneration { get; set; }
     
        public Stage():base()
        {
     
        }
        }
    D'après ce que j'ai compris un champs qui devrait être remplit ne l'est pas mais pourtant je suis sur de tout avoir remplit.J'ai même essayer de mettre les valeurs en dur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
                unStage.site = site;
                TypeTravail type = new TypeTravail() { libelle = "test" };
                unStage.typeTravail = type;
                Etudiant unEtudiant = new Etudiant();
     
                  using(var db=new AgesaContext())
                   {
                      string id = User.Identity.GetUserId();
                      unEtudiant = new Etudiant();
                      unEtudiant = (Etudiant)db.Users.First(p => p.Id == id);
     
                  }
    unStage.etudiant=Unetudiant //type Etudiant qui herite de la classe aspuser (identity)
     
                  unStage.lesMissions.Add(new Mission() { noteMission = 5, description_mission = "test", titre_mission = "test", debut_mission = DateTime.Now.Date, fin_mission = DateTime.Now.Date, travail = unStage });
    Je ne sait plus trop quoi faire ,Help !!!!
    Merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Salut,

    Voici un code qui pourra peut être t'aider.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    try 
        { 
            _db.Travails.Add(unStage);
                   _db.SaveChanges(); 
        } 
        catch(DbEntityValidationException ex) 
        {
            IEnumerable<DbEntityValidationResult> errors = ex.EntityValidationErrors;
            foreach (var error in errors)
                {
                    foreach (var item in error.ValidationErrors)
                    {
                        Console.WriteLine("{0} : {1}", item.PropertyName, item.ErrorMessage);
                    }
                } 
        }

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Merci
    Il me dit que étudiant son nom est deja pris.
    Je le récupère grâce à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    using(var db=new AgesaContext())
                   {
                      string id = User.Identity.GetUserId();
                      unEtudiant = new Etudiant();
                      unEtudiant = (Etudiant)db.Users.First(p => p.Id == id);
     
                  }
    Puis je l'ajoute à la dé étrangère de travail.
    Mais cela ne semble pas marcher puisqu'il veut le recreer dans la base de donnée
    Comment puis insérer cette propriété sans que EF tente de le recréer dans la BDD?

Discussions similaires

  1. Problème avec une erreur d'exception inconnue
    Par yoyo72 dans le forum Delphi
    Réponses: 5
    Dernier message: 09/08/2006, 11h52
  2. affichage page erreur suite exception
    Par pram dans le forum XMLRAD
    Réponses: 1
    Dernier message: 20/09/2005, 17h25
  3. erreur Une exception s'est produite
    Par unix27 dans le forum ASP
    Réponses: 5
    Dernier message: 23/11/2004, 02h38
  4. Codes d'erreurs des exceptions
    Par dway dans le forum Assembleur
    Réponses: 3
    Dernier message: 08/09/2004, 09h37
  5. erreur :"une exception s'est produite"
    Par leborg dans le forum ASP
    Réponses: 11
    Dernier message: 02/03/2004, 15h09

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