通过MVC中的复选框添加/删除EF实体的方法

时间:2012-02-28 09:33:57

标签: c# asp.net-mvc entity-framework

我有一个包含一组int(model.ProductCheckedIds)的模型,它代表UI上的已检查产品。

我还有一个带有子实体(LeadProducts)的EF实体(主管)。

我想出了这个解决方案来删除现在取消选择的所有子项目,并添加任何新选择的项目。

这可以简化或改进代码吗?

    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));

0 个答案:

没有答案