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 ;-)
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.