public bool AssignMenuForRole(List<RoleMenu> newList) { if (newList != null) { int roleId = (int)newList[0].RoleId; using (ePRGEntities dbContext = new ePRGEntities()) { var oldEntitys_query = from item in dbContext.RoleMenu where item.RoleId == roleId select item; var oldEntitys = oldEntitys_query.ToList(); //delete no need olds (in old but cancel checked now) foreach (var oldEntity in oldEntitys) { if (newList.Where(o => o.MenuId == oldEntity.MenuId).Count() == 0) { dbContext.RoleMenu.Remove(oldEntity); dbContext.SaveChanges(); } } //add new adds (don't exists yet) foreach (var newEntity in newList) { if (oldEntitys.Where(o => o.MenuId == newEntity.MenuId).Count() == 0) { dbContext.RoleMenu.Add(newEntity); dbContext.SaveChanges(); } } return true; } } return false; }