| 

.NET C# Java Javascript Exception

5
Im Grunde soll eine ganze Tabelle oder ein grosser Teil davon gelöscht werden. Bevor ich anfange durch den Datenstand zu iterieren um context.DeleteObject(entity) aufzurufen oder classic Ado.net anwerfe, wollte ich mal Eure Meinung dazu hören.
Achtung: die Daten werden in einer SQLCE gehalten, der Aufruf einer SP kommt also nicht in Frage.

Zusatzfrage:
Es gab doch vor ein paar hundert Jahren mal das EntitySQL welches so verwendet wird:
string entitySQL = "SELECT VALUE Count(o.OrderID) FROM Orders AS o;";
ObjectQuery<Int32> query = context.CreateQuery<Int32>(entitySQL);

Der Standard sieht jedoch keine Delete Statement vor, evlt. kennt jemand ein pfiffigen Trick wie es damit doch geht ;-)
06.04.2011
Jorgen Schumann 1,6k 1 9
2 Antworten
4
Servus,
ab .NET 4.0 kannst du

ObjectContext.ExecuteStoreCommand(string commandText, params object[] parameters)

verwenden. Diese Funktion führt einen beliebigen Befehl unter Verwendung der vorhandenen Verbindung direkt für die Datenquelle aus.

Schau auch mal hier: ObjectContext.ExecuteStoreCommand-Methode


Batch delete wird nicht im EF unterstützt

Gruß Thomas Sczyrba
06.04.2011
Thomas Sczyrba 1,4k 1 2 9
Thomas Sczyrba 1,4k 1 2 9
Gute Idee, das Projekt läuft unter .net 3.5, die Methode steht mir leider nicht zur verfügung.
Jorgen Schumann 06.04.2011
3
Ich denke, die Lösung sollte auf jeden Fall darauf hinauslaufen, dass insgesamt nur ein SQL-Befehl wie "delete from mytable" gegen die DB abgesetzt wird und nicht einer pro zu löschendem Objekt. Hast Du Dir schon mal ExecuteStoreCommand angesehen? Ich hab es selbst noch nicht ausprobiert, aber es sieht ganz passend aus, finde ich.

Update: Du bist auf .NET 3.5 angewiesen, also geht das nicht. Dann schau Dir vielleicht mal noch diesen Thread bei stackoverflow an. Dort wird auf eine Blog-Serie verwiesen, die das Problem mit selbstgeschriebenen Erweiterungsmethoden löst, die das gewünschte SQL generieren. Hab es selbst aber nur überflogen.
06.04.2011
Matthias Hlawatsch 13,2k 4 9

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH