2017-12-07 2 views
0

Ich füge neue Objets in jedes EF-Objekt ein. Kurz bevor ich die Änderungen von EF in die Datenbank speichern möchte, möchte ich auf mein Objekt iterieren, um alle hinzugefügten Werte zu sehen.Iterate auf einem EF-Objekt, um nur "neue Werte" zu sehen, bevor Änderungen gespeichert werden

Wenn ich machte ein einfaches:

var Categories = myDb.category; 
foreach (var category in Categories) 
{ 
    ..... 
} 

Es mir geben „alle“ die Werte nicht? Werte, die ich hinzufüge, und Werte, die sich bereits in der Datenbank befinden.

Wie kann ich alle Werte "im Standby" dazu bringen, in der Datenbank gespeichert zu werden?

Vielen Dank :)

Antwort

2

versuchen, diesen Ansatz:

var Categories = myDb.ChangeTracker.Entries<Category>() 
        .Where(x => x.State == EntityState.Added);  

foreach (var category in Categories) 
{ 
    //your logic 
} 
+0

Falls notwendig ich es durch Status aktualisierten Werte Geändert verlängern würde zu haben. Für mich sind aktualisierte Werte neue Werte in der Datenbank. Trotzdem ist es eine mögliche Lösung. – ChW

+0

Und Sie sollten '.Select (e => e.Entity)' hinzufügen. –

+0

Danke, ich werde es versuchen. Wenn es nicht gut ist, sollte ich eine einfache Liste verwenden. –

Verwandte Themen