2010-12-03 3 views
1

J'implémente OnSaveChanges() lors de la sauvegarde d'une entité.Comment puis-je détecter qu'une collection a été modifiée dans une entité ON SavingChanges?

En plus de découvrir toutes les propriétés de l'entité qui ont changé, comment puis-je trouver toutes les propriétés d'une collection dans l'entité qui ont changé?

EG client possède une propriété

public List<Address>AddressList {get;set;} 

Maintenant, si l'une de ces adresses changements comment puis-je la détecter?

J'utilise ce qui suit pour détecter tous les ObjectStateEntry modifié

IEnumerable<ObjectStateEntry> changes = 
      stateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Deleted); 

maintenant comme dit à part les modifications apportées à l'entité que je dois trouver toutes les modifications apportées aux collections de l'entité pourrait avoir.

Comment faites-vous?

Répondre

2

Vous devrez appeler ObjectContext.DetectChanges() avant d'appeler SaveChanges(). Si vous ne le faites pas, les éléments des collections ne seront pas inclus dans GetObjectStateEntries au moment de l'appel de votre méthode SavingChanges.

+0

savez-vous un exemple/lien où cela a été fait? – user9969

+0

Non - seulement dans mon propre code. – Pedro

Questions connexes