public ActionResult Edit(Product p) { ViewBag.CategoryId = new SelectList(_cat.GetAll(), "CategoryId", "CategoryName", p.CategoryId); ViewBag.SupplierId = new SelectList(_sup.GetAll(), "SupplierId", "SupplierName", p.SupplierId); ViewBag.proNote = _note.GetBy(x => x.Type == 2).AsEnumerable(); ViewBag.AttrType = _attr.GetAll().AsQueryable().Include(x => x.Attributes).AsEnumerable(); if (p.ProductAttrs != null) { _prAttr.RemoveRange(_prAttr.GetBy(x => x.ProductId == p.ProductId)); p.ProductAttrs.ToList().ForEach(x => x.ProductId = p.ProductId); _prAttr.AddRange(p.ProductAttrs); } if (p.ProductNotes != null) { _proNote.RemoveRange(_proNote.GetBy(x => x.ProductId == p.ProductId)); p.ProductNotes.ToList().ForEach(x => x.ProductId = p.ProductId); _proNote.AddRange(p.ProductNotes); } if (ModelState.IsValid) { if (_product.Edit(p)) { return(RedirectToAction("Index")); } return(View(p)); } return(View(p)); }