2 Stimmen

Entity Framework: Mehrere Zeilen in einem Set mit Daten aus einem anderen Set aktualisieren

Ich möchte einfach nur diese Zeile von SQL erreichen:

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

Wie kann das mit Entity Framework mit einer minimalen Anzahl von Roundtrips gemacht werden? Das einzige, was mir einfällt, ist die Verwendung von foreach, um eine Schleife durch meine table2 und aktualisieren Sie den zugehörigen Eintrag in table1 aber das führt zu einer ganzen Reihe von Hin- und Rückreisen, nicht wahr?

1voto

Craig Stuntz Punkte 124703

Das ist leider so, kein UPDATE in Entity SQL gegenwärtig. Eine Umgehung besteht darin reguläres SQL verwenden . Andernfalls sollten Sie die Anzahl der Umläufe auf ein Minimum reduzieren, indem Sie alle erforderlichen Zeilen aus beiden Tabellen auf einmal laden und SaveChanges so selten wie möglich aufrufen.

0voto

Sanjay Zalke Punkte 1241

Wie Craig schon sagte, 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, aber efe bietet einen Wrapper und einige weitere Funktionen. Im Grunde genommen sauberer Code. (Das gefällt mir!). Ich hoffe, dass dies helfen wird.

Sanjay Zalke

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X