2008-11-28 6 views
5

Existe-t-il un moyen d'interroger ou simplement d'accéder à un objet nouvellement ajouté (à l'aide de la méthode ObjectContext.AddObject) dans Entity Framework? Je veux dire situation quand il n'est pas encore enregistré dans le magasin de données en utilisant SaveChangesEst-il possible d'interroger un nouvel objet ajouté dans MS Entity Framework?

Je comprends que les requêtes sont traduites en SQL sous-jacent et exécutées sur le stockage de données, et il n'a pas encore ce nouvel objet. Mais de toute façon, je suis curieux - si ce n'est pas officiellement soutenu, c'est peut-être possible en théorie. Si ce n'est pas le cas, comment le développeur peut-il y faire face? Suivre manuellement de nouveaux objets et les interroger en utilisant Linq aux objets?

La même question s'applique également à LinqToSql.

Répondre

7

Dans EF, si vous utilisez ce code, vous avez toutes les entités qui sont déjà chargés dans le contexte (y compris ceux nouvellement ajoutés):

context.ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Unchanged).Select(o => o.Entity).OfType<YourObjectType>() 
+0

Merci, je ne travaille plus avec EF, mais j'espère que c'est utile. – Vladekk

2

« La même question vaut aussi pour LinqToSql. »

Pour LINQ-to-SQL, regardez DataContext.GetChangeSet(); ce qui a 3 separate collections pour l'attente .Inserts, .Updates et .Deletes

Notez que le ChangeSet est un instantané quand la méthode GetChangeSet() est appelée; vous devez effectuer une nouvelle requête pour voir les modifications supplémentaires.

Questions connexes