2008-11-28 4 views
5

Gibt es eine Möglichkeit, neu hinzugefügte Objekte (mit der Methode ObjectContext.AddObject) in Entity Framework abzufragen oder einfach darauf zuzugreifen? Ich meine Situation, wenn es noch nicht im Datenspeicher mit SaveChangesIst eine Abfrage zu einem neuen Objekt in MS Entity Framework möglich?

Ich verstehe, dass Abfragen in zugrunde liegenden SQL übersetzt und gegen Datenspeicher ausgeführt werden, und es dieses neue Objekt noch nicht haben. Aber wie auch immer, ich bin neugierig - wenn es nicht offiziell unterstützt wird, ist es theoretisch möglich. Wenn nicht, wie kann Entwickler damit umgehen? Neue Objekte manuell verfolgen und mit Linq zu Objekten abfragen?

Die gleiche Frage gilt auch für LinqToSql.

Antwort

7

In EF, wenn Sie diesen Code verwenden, können Sie alle Objekte, die bereits im Rahmen geladen werden (einschließlich der neu hinzugekommenen):

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

Danke, ich arbeite nicht mehr mit EF, aber das ist hoffentlich nützlich. – Vladekk

2

„Die gleiche Frage gilt auch für LinqToSql.“

für LINQ-to-SQL, Blick auf DataContext.GetChangeSet(); Dies hat für die 3 separate collections.Inserts, .Updates und .Deletes

Hinweis, dass die anhängigen ChangeSet ist eine Momentaufnahme, wenn die GetChangeSet() Methode aufgerufen wird; Sie müssen erneut abfragen, um weitere Änderungen zu sehen.

Verwandte Themen