我努力減少管理存儲過程和所遇到的這個不知道如何(或者)可以成功地移植到實體框架:如何在EF中刪除記錄時返回刪除的記錄列?
-- 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
基本上,PROC一個id,返回文件它將刪除的記錄的名稱,然後刪除該行。調用代碼然後具有文件名以執行任何文件系統清除,從而減少孤立文件的可能性。
現在使用Entity Framwork,我可以找到所有的文件並執行刪除操作,但如果我在循環中執行此操作,效率會非常低下。
我可以嘗試記錄我的嘗試,但它比任何編譯的代碼更僞代碼。
你也想避免執行原始的sql命令,據我所知? – Evk
從EF DbSet中選擇要刪除的所有File對象,並將其存儲在列表中。遍歷列表並刪除每一個,或者我認爲有一個'RemoveRange'方法。 SaveChanges在你的DbContext上,然後你可以遍歷你的List並刪除文件 –
Nkosi
@Evk可能,如果我看不到proc的一個明智的選擇,我可能只是保持proc。 –