LinqToSql / Temporäres Löschen

27/09/2008 - 20:55 von André Grub | Report spam
Hallo,

habe ein kleines Problem mit Linq. Und zwar wundert es mich, dass es nicht
möglich ist Temporàr zu löschen. Zum Beispiel funktioniert folgendes
Beispiel nicht:

foreach (var entity in entities)
{
_db.Entities.DeleteOnSubmit(entity);
}
_db.SubmitChanges();

Ergebniss ist, dass gar nix passiert.

Desweiteren wundert es mich und dies ist auch mein größtes Problem, dass
wenn ich über InsertOnSubmit(entity) ein Objekt in eine Entities-Auflistung
einfüge ohne danach SubmitChanges() aufzurufen, diese danach in der
Auflistung temporàr enthalten ist, ich mit dieser arbeiten kann, aber noch
keine neue Datenzeile in die Datenbanktabelle eingefügt wurde. Das selbe
geht mit DeleteOnSubmit jedoch nicht. Wieso werden die zum löschen
markierten Datensàtze nicht temporàr aus der Auflistung entfernt? Rufe ich
nicht sofort nach einem DeleteOnSubmit SubmitChanges auf, sondern àndere zum
Beispiel noch einen anderen Datensatz, dann passiert beim nàchsten Submit
ebenfalls wieder nichts.

Das kann es doch irgendwie nicht sein oder ist das so gewollt?

Grüße und Danke

André
 

Lesen sie die antworten

#1 Frank Dzaebel
28/09/2008 - 09:10 | Warnen spam
Hallo André,

habe ein kleines Problem mit Linq. Und zwar wundert es mich, dass es
nicht möglich ist Temporàr zu löschen. Zum Beispiel funktioniert
folgendes Beispiel nicht: Ergebniss ist, dass gar nix passiert.



Funktioniert bei mir aber:

DataClasses1DataContext db = new DataClasses1DataContext();
var entities = from p in db.TableA select p;
int anzahl = entities.Count(); // 9
foreach (var entity in entities)
{
db.TableA.DeleteOnSubmit(entity);
break; // testweise nur einer
}
db.SubmitChanges();
anzahl = entities.Count(); // 8


Einen Primàrschlüssel hast Du doch in der Tabelle "Entities"?.


Wieso werden die zum löschen markierten Datensàtze nicht temporàr aus der
Auflistung entfernt?



weil er ja die Information benötigt, *welche*
Datensàtze denn bei SubmitChanges schliesslich
gelöscht werden sollen. Die Datensàtze werden nur
markiert. Interessant in diesem Zusammenhang ggf.:

[Entity Update in verteilten Szenarien - Linq to Entities]
http://dzaebel.net/EntityUpdate.htm


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen