public override void Save()
        {
            if (this.Id != null)
            {
                throw new Exception("Alteração não permitida para testa classe");
            }
            this.IsTransaction = true;
            try
            {
                base.Save();

                var history = new HistoricoEstruturaDeParaJuridico();
                history.Transaction    = this.Transaction;
                history.PessoaJuridica = this.PessoaJuridicaPara;
                history.Delete();

                history.PessoaJuridicaAntigo = this.PessoaJuridicaDe;
                history.Ordem = 0;
                history.Save();

                saveHistoryOfMigrationJuridicPerson2(this.pessoaJuridicaDe, 1);

                this.Commit();
            }
            catch (Exception err)
            {
                this.Rollback();
                throw err;
            }
        }
        private void saveHistoryOfMigrationJuridicPerson(PessoaJuridica pessoaJuridica, int index)
        {
            var dePara = new DeJuridicaParaJuridica();

            dePara.Transaction        = this.Transaction;
            dePara.PessoaJuridicaPara = pessoaJuridica;
            foreach (DeJuridicaParaJuridica dp in dePara.Find())
            {
                var history = new HistoricoEstruturaDeParaJuridico();
                history.Transaction          = this.Transaction;
                history.PessoaJuridica       = this.PessoaJuridicaPara;
                history.PessoaJuridicaAntigo = dp.PessoaJuridicaDe;
                history.Ordem = index;
                history.Save();
                index++;
                saveHistoryOfMigrationJuridicPerson(dp.PessoaJuridicaDe, index);
            }
        }
        private void saveHistoryOfMigrationJuridicPerson2(PessoaJuridica pessoaJuridica, int index)
        {
            var dePara = new HistoricoEstruturaDeParaJuridico();
            dePara.Transaction = this.Transaction;
            dePara.PessoaJuridica = pessoaJuridica;

            foreach (HistoricoEstruturaDeParaJuridico dp in dePara.Find())
            {
                var history = new HistoricoEstruturaDeParaJuridico();
                history.Transaction = this.Transaction;
                history.PessoaJuridica = this.PessoaJuridicaPara;
                history.PessoaJuridicaAntigo = dp.PessoaJuridicaAntigo;
                history.Ordem = index;
                history.Save();
                index++;
            }
        }
        public override void Save()
        {
            if (this.Id != null) throw new Exception("Alteração não permitida para testa classe");
            this.IsTransaction = true;
            try
            {
                base.Save();

                var history = new HistoricoEstruturaDeParaJuridico();
                history.Transaction = this.Transaction;
                history.PessoaJuridica = this.PessoaJuridicaPara;
                history.Delete();

                history.PessoaJuridicaAntigo = this.PessoaJuridicaDe;
                history.Ordem = 0;
                history.Save();

                saveHistoryOfMigrationJuridicPerson2(this.pessoaJuridicaDe, 1);

                this.Commit();
            }
            catch (Exception err)
            {
                this.Rollback();
                throw err;
            }
        }