Um alle Zeilen in einer Tabelle zu löschen, gehe ich derzeit wie folgt vor:
context.Entities.DeleteAllOnSubmit(context.Entities);
context.SubmitChanges();
Dies scheint jedoch ewig zu dauern. Gibt es einen schnelleren Weg?
c#
linq-to-sql
delete-row
Svish
quelle
quelle
Antworten:
Sie können einen normalen SQL-Befehl zum Abschneiden oder Löschen mit dem Befehl DataContext.ExecuteCommand ausführen Methode können :
Oder
Das Löschen dauert lange, da Linq to SQL für jede Entität eine DELETE-Anweisung generiert. Es gibt andere typsichere Ansätze zum / Aktualisieren von Stapeln. Überprüfen Sie die folgenden Artikel:
quelle
TRUNCATE
zuvor ohne Probleme auf Linq-to-SQLLeider führt LINQ-to-SQL satzbasierte Abfragen nicht sehr gut aus.
Das würden Sie annehmen
wird zu so etwas übersetzen
aber leider ist es eher so
Sie werden dasselbe finden, wenn Sie versuchen, ein Massenupdate in LINQ-to-SQL durchzuführen. Mehr als ein paar hundert Zeilen gleichzeitig und es wird einfach zu langsam.
Wenn Sie Stapeloperationen ausführen müssen und LINQ-to-SQL verwenden, müssen Sie gespeicherte Prozeduren schreiben.
quelle
Ich verwende gerne eine Erweiterungsmethode wie folgt:
quelle
Sie können dies auch verwenden:
quelle
Der folgende c # -Code wird zum Einfügen / Aktualisieren / Löschen / Löschen aller Daten in eine Datenbanktabelle mithilfe von LINQ to SQL verwendet
quelle