public static bool Edit(Categoria Categoria) { ArrecebaDLLDb db = new ArrecebaDLLDb(); HashSet<Categoria> Subcategorias = Categoria.SubCategorias; Categoria.SubCategorias = null; db.Entry(Categoria).State = EntityState.Modified; if (Subcategorias != null) { foreach (Categoria Subcategoria in Subcategorias) { if (Subcategoria.CategoriaId > 0) { if (!String.IsNullOrWhiteSpace(Subcategoria.Nome)) db.Entry(Subcategoria).State = EntityState.Modified; else { db.Categorias.Attach(Subcategoria); db.Categorias.Remove(Subcategoria); } } else { if (!String.IsNullOrWhiteSpace(Subcategoria.Nome)) db.Categorias.Add(Subcategoria); } } } return db.SaveChanges() > 0; }