Pourquoi je ne peux pas l'attraper SqlException sur SaveChanges() la méthode de l'Entity Framework
J'ai mis SaveChanges()
méthode à l'intérieur d'un bloc try/catch, mais je ne pouvais pas attraper SqlExeption.
try
{
db.SaveChanges();
}
catch (Exception ex)
{
}
Le comportement désiré est expliqué et évident. Il est clair que l'énoncé du problème. Curieux de savoir pourquoi cela a été voté...
J'appelle BS sur la fermeture de ce sujet. c'est ÉVIDEMMENT sur le sujet et a même l'exemple de code montrant que le comportement attendu est. 'Souhaite que nous pourrions voter contre ceux qui ont voté pour le fermer.
doit rouvrir et de les assigner a accepté de répondre à @usr
J'appelle BS sur la fermeture de ce sujet. c'est ÉVIDEMMENT sur le sujet et a même l'exemple de code montrant que le comportement attendu est. 'Souhaite que nous pourrions voter contre ceux qui ont voté pour le fermer.
doit rouvrir et de les assigner a accepté de répondre à @usr
OriginalL'auteur J - C Sharper | 2014-07-25
Vous devez vous connecter pour publier un commentaire.
SqlException
est Système.Les données.SqlClient.Classe SqlException il est donc normal que vous ne pouvez pas attraper cette exceptionLe EntityFramework
DbContext.Méthode SaveChanges()
pouvez jeter les exceptions suivantes uniquement MSDNDe sorte que vous pouvez faire quelque chose comme ceci par exemple
Plus
Les exceptions mentionnées ci-dessus sont entity Framework Personnalisé exceptions seulement
EF
est responsable Quand et Comment déclencher prendre un coup d'oeil àmise en Œuvre personnalisée exceptions
OriginalL'auteur BRAHIM Kamel
Vous ne pouvez pas attraper
SqlException
car il n'est pas jeté directement, il est défini comme Intérieure à l'Exception de laDbUpdateException
.Entity Framework est une abstraction de travailler avec les bases de données, il ne dépend pas d'une technologie de Base de données directement.
Avoir un regard sur les Exceptions levées par
DbContext.SaveChanges()
OriginalL'auteur PaRiMaL RaJ