EntityFramework affiche les entités avant d'enregistrer les modifications

c# entity-framework savechanges

Question

Entity Framework ObjectSet avec sa méthode ToList n'affiche que les entités sauvegardées. Cela signifie que, quand j'appelle

context.AddToCustomers(myNewCust);

et ensuite (sans appeler SaveChanges)

myDataGrid.DataContext = context.Customers.ToList();

le DataGrid ne montre pas l'entité nouvellement ajoutée (même context.Customers.Count() ne l'inclut pas).

Est-il possible d'afficher ces entités (celles avec EntityState = Added )?

Merci d'avance.

Réponse acceptée

Je pense que vous pouvez obtenir des entités ajoutées non sauvegardées en appelant quelque chose comme:

var inserted = context.ObjectStateManager
                      .GetObjectStateEntries(EntityState.Added)
                      .Where(e => !e.IsRelationship)
                      .Select(e => e.Entity)
                      .OfType<Cutomer>();

Mais juste en lisant votre question, je crains que vous essayez de faire quelque chose de mal. Pourquoi avez-vous besoin de combiner des entités non sauvegardées avec des données récupérées? Si vous devez afficher du contenu non enregistré, vous devez simplement le conserver dans votre propre collection séparée.


Réponse populaire

Regardez la méthode TryGetObjectStateEntry (EntityKey, ObjectStateEntry)

http://msdn.microsoft.com/en-us/library/system.data.objects.objectstatemanager.aspx



Related

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