实体框架4中的高效多重删除

时间:2010-10-11 20:13:13

标签: c# .net database entity-framework orm

给定一组实体ID,如何在不首先选择实体的情况下有效删除要表示的实体?

以下是一些代码,我现在正在使用,但EF Profiler正在抱怨我运行N + 1个查询:

    var ids = GetSelectedIds();

    foreach (var id in ids)
        db.Workshops.DeleteObject(db.Workshops.Single(x => x.Id == id));

    db.SaveChanges();
    BindWorkshops();

1 个答案:

答案 0 :(得分:1)

这有助于EF Profiler停止抱怨N + 1,但有更好的方法吗?

var ids = GetSelectedIds();

foreach (var id in ids)
{
    var ws = new Workshop { Id = id };
    db.Workshops.Attach(ws);
    db.Workshops.DeleteObject(ws);
}

db.SaveChanges();
BindWorkshops();