Эффективное множественное удаление в Entity Framework 4 - PullRequest
1 голос
/ 12 октября 2010

Учитывая набор идентификаторов сущностей, как можно эффективно удалить сущности, к которым относятся идентификаторы, без предварительного выбора сущности?

Вот некоторый код, который я сейчас использую, но профилировщик EF жалуетсяу меня за выполнение N + 1 запросов:

    var ids = GetSelectedIds();

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

    db.SaveChanges();
    BindWorkshops();

1 Ответ

1 голос
/ 12 октября 2010

Это помогло 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...