EntityFramework数据库批量删除

时间:2015-08-17 11:19:16

标签: c# database entity-framework

如何使用Entity Framework批量删除数据库中的数据。 这是我的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();

1 个答案:

答案 0 :(得分:0)

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