批量删除EntityFramework数据库

本文关键字:数据库 EntityFramework 删除 | 更新日期: 2023-09-27 18:08:11

如何使用实体框架批量删除数据库中的数据。这是我的c#代码,现在它工作得很慢。是因为每次只删除一行吗?如何更快地删除它。现在,删除20K行需要30分钟。

        var ts = from t in db.MyTasks
                 where t.MyTaskID == id
                 select t;
        var sjs = from t in ts
                  from s in t.Comments
                  where s.CommentJobs.Count() > 0
                  select s;
        var ss = from t in ts
                 from s in t.Comments
                 select s;
        sjs.ToList().ForEach(o => {
            db.CommentJobs.RemoveRange(o.CommentJobs);
        });
        db.Comments.RemoveRange(ss);
        db.MyTasks.RemoveRange(ts);
        db.SaveChanges();

批量删除EntityFramework数据库

对于这样的批量操作,可以使用SqlQuery()方法。