Ich arbeite seit einiger Zeit mit LINQ To SQL, und wenn es darum geht, eine Entität aus der Datenbank zu entfernen, habe ich immer die Tabelle aufgerufen. DeleteOnSubmit und in der Entität übergeben. Manchmal habe ich selbst etwas geschrieben wie:LINQ To SQL: Löschen von Entitäten (nach ID) mit einer Abfrage
db.Users.DeleteOnSubmit(db.Users.Where(c => c.ID == xyz).Select(c => c).Single());
Dies führt natürlich zu zwei Abfragen. Eine, um die Entität zu erhalten, die den Kriterien entspricht, und eine andere, um sie zu löschen. Oft habe ich die ID des Datensatzes, den ich entfernen muss, und ich frage mich, ob es eine direktere Möglichkeit gibt, eine Zeile aus einer Tabelle nur über die ID zu entfernen?
Sie könnten DeleteByPK auch zu einer Erweiterungsmethode für DataContext machen, und die Zeichenfolge selbst sollte wahrscheinlich eine parametrisierte Abfrage sein (exec sp_executesql ...). –
in Zeile SQL auf einer Linq2Sql-Anweisung scheint den Zweck zu besiegen –
@ Bobby: nicht wirklich.Ich verwende in Zeile SQL für die Leistung und bei Bedarf (komplexe SQL). Ruhe bei SQL-Generierung für allgemeine Operationen. –