2015-08-24 2 views
0

Mon projet est une application Web sur ASP.NET MVC 6 et basiquement j'ai un problème vraiment étrange.C# EntityFramework erreur de mise à jour du modèle

Voici le code:

await Dashboards.UpdateReward(dashboard); 
await Lessons.Update(lesson); 

méthodes ne font rien en particulier, mais enregistrer des états modifiés à la base de données.

Voici le problème. Quand je commence l'application normalement et courir à travers cette partie du code, il jette l'erreur:

Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.

Mais voici la partie la plus délicate quand je déboguer et aller étape par étape, il fonctionne très bien sans aucune erreur.

+0

Existe-t-il une dépendance entre "Tableaux de bord" et "Leçons"? – Luc

+0

Vos champs datetime ne sont probablement pas définis. – DarthVader

+0

Si vous utilisez ** Entity Framework **, vous pouvez consulter ma réponse sur [Solution pour "La validation a échoué pour une ou plusieurs entités. Voir la propriété 'EntityValidationErrors' pour plus de détails] (http://stackoverflow.com/questions/21486072/solution-for-validation-failed-for-one-or-more-entities-see-entityvalidatione/29031857#29031857). J'espère que cela aide ... –

Répondre

0

Merci pour votre aide. Il semblerait que le problème était dans le modèle de tableau de bord. Le chargement de Lazzy n'a pas chargé ma propriété d'utilisateur et puisqu'il s'agit d'une clé étrangère, elle ne peut pas être une valeur nulle.

[Key, ForeignKey("User")] 
    public string UserId { get; set; } 

    //Gemification 
    public int Level { get; set; } 
    public int Experience { get; set; } 
    public int Yens { get; set; } 

    //Application 
    [Column(TypeName = "datetime2")] 
    public DateTime Created { get; set; } 
    [Column(TypeName = "datetime2")] 
    public DateTime Updated { get; set; } 
    public string CreatedBy { get; set; } 
    public string UpdatedBy { get; set; } 

    public virtual ICollection<Lesson> Lessons { get; set; } 
    public virtual ICollection<OwnedGroup> OwnedGroups { get; set; } 
    [Required] 
    public virtual ApplicationUser User { get; set; } 

De toute façon, merci pour votre aide.