Puisqu’il s’agit d’une réimpression de l’article dont la source est indiquée ici, veuillez m’excuser s’il y a des articles qui ont déjà été transférés sans indication, car certains ne trouvent plus la source, ou pour d’autres raisons.
Si vous êtes offensé, veuillez me contacter, supprimer ou indiquer la source.
Parce qu’avant, je voulais juste collectionner de bons articles, mais parfois la connexion échoue, alors maintenant je me tourne directement vers moi quand j’en trouve un bon.
Source originale http://blog.csdn.net/snowinfish/article/details/11567301
Lorsque l’écriture de données dans le modèle d’entité ADO.NET dans VS2012, il affiche sans cesse « DbEntityValidationException not handled » et « Validation d’une ou plusieurs entités échouée. Pour plus d’informations, voir Propriétés EntityValidationErrors.
J’ai testé moi-même les deux entités suivantes, principalement l’erreur causée par « operate911 ».
J’ai consulté les informations en ligne et consulté l’article suivant.
Solution de contournement pour voir les détails d’EntityValidationErrors
http://www.cnblogs.com/zhourq/archive/2011/11/03/2234720.html
Cependant, lors de l’écriture de l’exception, le système n’a pas « DbEntityValidationException », ce qui est supposé être un manque de référence à l’espace de noms.
Ainsi ajouté :
[Csharp] Voir clair utilisant System.Data.Validation ;
La procédure correspondante est modifiée pour : [Csharp] Voir clair essaie { entités. Operate911.Add(operate911) ; entités. Modifications de sauvegarde () ; } catch (DbEntityValidationException dbEx) {
} Invite de démarrage, sans exception, « operate911 » n’écrit pas les données dans la table de la base de données. La raison de vérifier est que, lors de l’écriture d’un programme complémentaire, il n’y a pas de remplissage de données pour une colonne qui ne peut pas être vide, et après modification, le programme est lancé et le test réussit.
Cependant, si vous n’écrivez pas d’exception, continuez à afficher l’erreur principale.
De plus, le paramètre « dbEx » après la phrase « catch (DbEntityValidationException dbEx) » peut être écrit sans écriture.
Continuer à être inconnu...
09.12 Addendum :
Les tentatives et attrapés ci-dessus sont mal écrits, et l’exception n’est pas lancée, mais modifiée en :
[Csharp] Voir clair essaie { var operateSpt = new OperateSpt(ymd, timeNow, Operate) ; entités. OperateSpts.Add(operateSpt) ; entités. Modifications de sauvegarde () ; }
catch (DbEntityValidationException ex) { MessageBox.Show (ex. Message) ; }
Les résultats sont présentés dans la figure ci-dessous.
Continuer à être inconnu...
Supplément : Résolution de problèmes.
Raison : Les données écrites ne sont pas cohérentes avec les réglages du tableau.
Ma raison est qu’à une certaine étape, les données écrites sont vides, mais la table originale est réglée sur « interdit d’être vide », donc il y aura une exception lorsque cette étape sera effectuée.
J’ai été trop négligent et je n’ai jamais pensé à ce problème quand je voyais d’autres opérations écrites sur les données pendant que je les regardais.
|