public bool Alterar(EMovimentacaoConta movimentacaoConta)
        {
            SqlCeConnection cnn = new SqlCeConnection();
            cnn.ConnectionString = Conexao.Caminho;

            SqlCeCommand cmd = new SqlCeCommand();
            cmd.Connection = cnn;

            try
            {
                using (TransactionScope transacao = new TransactionScope())
                {
                    #region alteracao do movimentacaoConta
                    cmd.CommandText = @"UPDATE Movimentacao_Conta SET
                                DataHoraMovimentacao = @DataHoraMovimentacao,
                                IDAssociado = @IDAssociado, 
                                ValorTotal = @ValorTotal, 
                                WHERE Identificador = @Identificador)";

                    PreencherParametros(movimentacaoConta, cmd);

                    //Executa o comando setado - UPDATE
                    cnn.Open();
                    cmd.ExecuteNonQuery();
                    #endregion alteracao do movimentacaoConta

                    //Apagar todos os itens da movimentacao a partir 
                    //do identificador da movimentacao
                    bool retorno = new PItemMovimentacao().Excluir(movimentacaoConta.Identificador, cnn);

                    //Percorre a lista incluindo todos os itens
                    foreach (var item in movimentacaoConta.ListaItensMovimentacao)
                    {
                        item.IDMovimentacao = movimentacaoConta.Identificador;
                        new PItemMovimentacao().Incluir(item, cnn);
                    }

                    //"Commita" a transação
                    transacao.Complete();
                }
            }
            catch (Exception)
            {
                //Caso ocorra algum erro, executar o rollback da transação
                Transaction.Current.Rollback();
                throw new Exception();
            }
            finally
            {
                //Fecha a conexão
                cnn.Close();
            }

            return true;
        }
        public bool Excluir(int identificador)
        {
            SqlCeConnection cnn = new SqlCeConnection();
            cnn.ConnectionString = Conexao.Caminho;

            SqlCeCommand cmd = new SqlCeCommand();
            cmd.Connection = cnn;

            try
            {
                using (TransactionScope transacao = new TransactionScope())
                {
                    //Exclui primeiramente os itens
                    bool retorno = new PItemMovimentacao().Excluir(identificador, cnn);

                    #region exclusao do movimentacaoConta
                    cmd.CommandText = @"DELETE FROM Movimentacao_Conta
                               WHERE Identificador = @Identificador ";

                    cmd.Parameters.Add("@Identificador", identificador);

                    //Executa o comando setado - DELETE
                    cnn.Open();
                    cmd.ExecuteNonQuery();
                    #endregion exclusao do movimentacaoConta

                    transacao.Complete();
                }
            }
            catch (Exception)
            {
                Transaction.Current.Rollback();
                throw new Exception();
            }
            finally
            {
                //Fecha a conexão
                cnn.Close();
            }

            return true;
        }