Ich arbeite verwalteten gespeicherten Prozeduren auf die Reduzierung und haben über diese kommen nicht zu wissen, wie (oder ob) es erfolgreich auf Entity Framework portiert werden:Wie wird eine Spalte des gelöschten Datensatzes zurückgegeben, wenn ein Datensatz in EF gelöscht wird?
-- select out filename so the caller can delete the file from the filesystem
SELECT SystemFileName
FROM File
WHERE FileId = @fileId
-- now delete
DELETE
FROM File
WHERE FileId = @fileId
Grundsätzlich nimmt die proc eine ID, die Datei zurückgibt Name des zu löschenden Datensatzes und löscht die Zeile. Der aufrufende Code hat dann den Dateinamen, um jedes Dateisystem aufzuräumen und das Potential für verwaiste Dateien zu reduzieren.
Jetzt mit Entity Framwork, konnte ich nur alle Dateien finden und die Löschung durchführen, aber wenn ich dies in einer Schleife tun würde, wäre es schrecklich ineffizient.
Ich könnte versuchen, meine Versuche zu dokumentieren, aber es ist mehr Pseudocode als alles, was kompiliert wird.
Sie wollen auch die Ausführung von Raw SQL-Befehle zu vermeiden, wie ich es verstehe? – Evk
Wählen Sie alle Dateiobjekte aus EF DbSet aus, die Sie löschen und in einer Liste speichern möchten. Schleife durch die Liste und entferne jede einzelne oder ich denke, es gibt eine 'RemoveRange' Methode. SaveChanges auf Ihrem DbContext und dann können Sie Ihre Liste durchlaufen und löschen Sie die Dateien –
Nkosi
@Evk wahrscheinlich, wenn ich nicht eine vernünftige Alternative zu der Proc sehen könnte, kann ich genauso gut die proc. –