Frage

Einfache Frage, ist es möglich, diese Abfrage dies mit Entity Framework zu erreichen, wenn eine Einheit zu aktualisieren?

update test set value = value + 1 where id = 10
War es hilfreich?

Lösung

Nicht wirklich unter dieser Form nicht.

Sie müssen alle Objekte auswählen, die Ihren Kriterien entsprechen, foreach über sie und aktualisiert sie.

Wenn Sie nach etwas suchen, den es direkt im DB tun, weil Ihr Satz sehr groß sein könnte, werden Sie SQL haben direkt zu verwenden. (Ich erinnere mich nicht, wenn EF hat einen Weg UPDATE Abfragen direkt den Weg Linq To SQL tut auszuführen).

Andere Tipps

Mit der Batch-Update-Funktion des Entity Framework-Bibliothek Extended, wie folgt aus:

dbContext.Tests.Update(t => t.Id == 10, t => new Test() { Value = t.Value + 1 });

Es sollte, es wird nur ein wenig allgemeinen eingeschränkt sein.

var myEntity = context.First(item => item.id == 10);
myEntity.value += 1;
context.SaveChanges();

Sollten Ähnliche SQL erzeugen, können Sie die Profiler beobachten, um zu sehen, was SQL tatsächlich erzeugt wird, aber es sollte auf Ihre Aussage sehr ähnlich sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top