Vérifiez s'il y a des modifications en attente à enregistrer

entity-framework entity-framework-4 entity-framework-5 entity-framework-6

Question

Existe-t-il un moyen de savoir s'il existe des modifications non enregistrées dans le contexte de mon entité, dans Entity Framework?

Réponse acceptée

Cela pourrait fonctionner (si vous entendez par modifications les entités ajoutées, supprimées et modifiées):

bool changesMade = (context.ObjectStateManager.GetObjectStateEntries(EntityState.Added).Count() +
                    context.ObjectStateManager.GetObjectStateEntries(EntityState.Deleted).Count() +
                    context.ObjectStateManager.GetObjectStateEntries(EntityState.Modified).Count()
                    ) > 0;

Modifier:

Code amélioré:

bool changesMade = context.
                   ObjectStateManager.
                   GetObjectStateEntries(EntityState.Added | 
                                         EntityState.Deleted | 
                                         EntityState.Modified
                                        ).Any();

Réponse populaire

À partir de EF 6, il y a context.ChangeTracker.HasChanges() .



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow