2009-02-25 2 views
2

ich einfach diese Zeile von SQL erreichen wollen:Entity Framework: Update mehrere Zeilen in Reihe mit Daten aus anderen Satz

UPDATE table1 
SET table1.col = table2.col 
FROM table2 INNER JOIN 
    table1 ON table2.id = table1.id 

Wie das getan werden kann, mit einer minimalen Anzahl von Umläufen Entity Framework? Alles, was ich mir vorstellen kann, ist foreach zu verwenden, um durch meine table2 Schleife und den zugehörigen Eintrag in table1 zu aktualisieren, aber das führt zu einer ganzen Menge von Rundreisen, nicht wahr?

Antwort

1

Derzeit gibt es leider no UPDATE in Entity SQL. Ein Workaround ist zu use regular SQL. Ohne dies, halten Sie die Anzahl der Rundreisen auf ein Minimum, indem Sie alle erforderlichen Zeilen aus beiden Tabellen gleichzeitig laden und SaveChanges so oft wie möglich aufrufen.

0

Wie Craig gesagt hat, gibt es keine In-Build-Unterstützung für mehrere Objekte in EF, aber Sie können Ihre eigenen erstellen oder folgenden Link als Referenz verwenden.

http://geeks.ms/blogs/unai/archive/2008/07/17/multiple-entity-updates-with-entity-framework-ef-fetch-updates.aspx

http://efe.codeplex.com/

Beide verwenden dieselbe Logik, sondern efe stellt einen Wrapper und noch mehr Funktionalität. Grundsätzlich sauberer Code. (So ​​wie das!). Ich hoffe, das wird helfen.

Sanjay Zalke

Verwandte Themen