protected void CadastrarEntidade(IDbCommand cmd, DbManipulação entidade) { if (!Transacionando) throw new NotSupportedException("Não é permitido o uso de compartilhamento de IDbCommand sem o uso do atributo \"DbTransação\"."); entidade.MarcarTransação(); try { entidade.DispararAntesDeCadastrar(); entidade.Cadastrar(cmd); entidade.cadastrado = true; entidade.atualizado = true; if (entidade.DepoisDeCadastrar != null) entidade.DepoisDeCadastrar(entidade); } finally { entidade.DesmarcarTransação(); } }