我努力减少管理存储过程和所遇到的这个不知道如何(或者)可以成功地移植到实体框架:如何在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。 –