2009-08-20 5 views
0

Dois-je prendre la peine de vérifier si les objets ont été sauvegardés correctement?Linq SaveChanges question

if (objectContext.SaveChanges() > 0) 

Il devrait juste jeter une exception si ce n'est pas le cas, n'est-ce pas?

Répondre

2

Selon la méthode msdn documentation, la méthode SaveChanges() renvoie le nombre d'enregistrements ajoutés, modifiés ou supprimés. Les exceptions qu'il pourrait lancer sont InvalidOperationException ou OptimisticConcurrencyException.

Je pense qu'il est utile de vérifier le nombre d'enregistrements. Si vous émettez une instruction valide qui essaie de modifier ou de supprimer, mais qu'il n'y a rien à modifier ou à supprimer, elle renvoie simplement 0, même s'il n'y aura pas d'exception car techniquement, rien de mal ne s'est produit.

2

Selon MSDN:

SaveChanges fonctionne dans une transaction . SaveChanges lancera en arrière cette transaction et affichera une exception si l'un des objets ObjectStateEntry ne peut pas être persistant.

Vous devriez donc essayer/catch pour l'exception à la place. Si vous voulez connaître le nombre d'enregistrements concernés, alors dans le bloc try vous auriez int recordsAffected = objectContext.SaveChanges();

Jetez un coup d'œil au lien MSDN pour un exemple.

Questions connexes