Wie lösche ich eine oder mehr Reihen von meinem Tisch zu Entities mit Linq * ohne * die Zeilen abrufen zuerst?
-
05-07-2019 - |
Frage
Ich verstehe ich eine Lösch gespeicherte Prozedur auf die Löschmethode für einen bestimmten Typen zuordnen kann.
Dies erfordert jedoch einem Verfahren meines Kontextes des DeleteObject
in einem abgerufenen Objekt übergeben.
Das ist schlimm genug, aber was ist, wenn ich will 2000 Zeilen löschen? Kann ich Entities dies mit Linq tun, ohne zuerst die 2000 Zeilen aus der Datenbank und geht durch eine Schleife calling DeleteObject
Abrufen?
Wenn eine solche Funktionalität nicht vorhanden zu Entities in Linq, und Sie wissen, dass dies der Fall zu sein, dann sagen Sie bitte einfach so und ich werde andere Optionen untersuchen!
Wenn es nicht direkt vorhanden ist, konnte ich erreichen, ist durch eine gespeicherte Proc durch Linq to Entities kochend?
Lösung
Ja, Sie können dies tun. Von dieser Tipp :
// Create an entity to represent the Entity you wish to delete
// Notice you don't need to know all the properties, in this
// case just the ID will do.
Category stub = new Category { ID = 4 };
// Now attach the category stub object to the "Categories" set.
// This puts the Entity into the context in the unchanged state,
// This is same state it would have had if you made the query
ctx.AttachTo("Categories", stub);
// Do the delete the category
ctx.DeleteObject(stub);
// Apply the delete to the database
ctx.SaveChanges();
Siehe die volle Spitze für Details und Komplikationen.