Способ добавления / удаления EF-сущностей с помощью флажков в MVC - PullRequest
3 голосов
/ 28 февраля 2012

У меня есть модель, которая содержит массив целых чисел (model.ProductCheckedIds), который представляет проверенные продукты в пользовательском интерфейсе.

У меня также есть объект EF (ведущий) с дочерними объектами (LeadProducts).

Я придумала это решение, чтобы удалить все дочерние элементы, которые сейчас отменены, и добавить все вновь выбранные.

Может ли это быть код упрощен или улучшен?

    var addIds = model.ProductCheckedIds.Except(lead.LeadProducts.Select(x => x.ProductId));
    var toAdd = addIds.Select(addId => new LeadProduct {LeadId = model.LeadId, ProductId = addId}).ToList();

    var removeIds = lead.LeadProducts.Select(x => x.ProductId).Except(model.ProductCheckedIds);
    var toRemove = removeIds.Select(removeId => lead.LeadProducts.Single(x => x.ProductId == removeId)).ToList();

    toRemove.ForEach(x=>lead.LeadProducts.Remove(x));
    toAdd.ForEach(x => lead.LeadProducts.Add(x));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...