public void Agregar(Familia familia, Permiso hijo) { if (familia.Buscar(hijo)) { throw new InvalidOperationException("El permiso que desea agregar ya existe"); } if (hijo.Buscar(familia)) { throw new InvalidCastException("No puede crear dependencias circulares"); } familia.Agregar(hijo); using (IUnitOfWork unitOfWork = UnitOfWorkFactory.Create()) { PermisoDAL permisoDAL = new PermisoDAL(unitOfWork); permisoDAL.Agregar(familia, hijo); unitOfWork.SaveChanges(); } }