Jump to content
Sign in to follow this  
Flatdnl

Entity Framework - Rollback

Recommended Posts

Flatdnl

Boa Tarde Galera,

Gostaria saber se existe alguma outra forma de fazer um Rollback sem ser utilizando TansactionScope.

Estou tentando utilizar o TS, mas retorna o seguinte erro:

O gerenciador de transações de parceiros desativou seu suporte a transações remotas/de rede. (Exceção de HRESULT: 0x8004D025)

Obrigado!

Share this post


Link to post
Share on other sites
Caça

O método "SaveChanges" funciona como uma transacção


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Flatdnl

Mas como faço para incluir registros em 2 tabelas?

tenho o seguinte código:

Using db As New CNS_CEEntities

            Try
                Dim nf As New NOTAFISCAL With {.IdNF = txtNumDoc.Text, _
                                               .Numero = txtNumNF.Text, _
                                               .DataDocumento = dtDocumento.Text, _
                                               .DataRecebimento = Today.Date, _
                                               .PrazoEntrega = dtPrazo.Text, _
                                               .ReferenciaSAP = txtCodSAP.Text, _
                                               .PesoLiquido = txtPesoLiquido.Text, _
                                               .PesoBruto = txtPesoBruto.Text, _
                                               .MaterialConsignado = strConsignado}

                db.AddToNOTAFISCAL(nf)
                db.SaveChanges()

                Dim i As Integer = 0

                Dim prodNf As New NOTAFISCAL_PRODUTO With {.IdNFProduto = gridItemNF.Item(0, i).Value, _
                                                           .PesoTotal = gridItemNF.Item(2, i).Value, _
                                                           .ValorUnitario = gridItemNF.Item(3, i).Value, _
                                                           .QtdVolumes = gridItemNF.Item(4, i).Value}

                prodNf.NOTAFISCAL = (From n In db.NOTAFISCAL Where n.IdNF = txtNumDoc.Text Select n).First()
                prodNf.PRODUTO_ESTOQUE = (From p In db.PRODUTO_ESTOQUE Where p.IdProdutoEstoque = gridItemNF.Item(1, i).Value Select p).First()

                db.AddToNOTAFISCAL_PRODUTO(prodNf)
                db.SaveChanges()

                MsgBox("Registro Incluido")

            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End Using

mas se ele der erro na segunda inclusão..

ele não volta a primeira...

o que estou fazendo de errado?

Share this post


Link to post
Share on other sites
Flatdnl

Ok, Entendi...

mas se seu não fizer o primeiro, não consigo fazer o segundo...

como devo proceder para incluir os registros nas 2 entidades e dar um Rollback caso aconteça algum erro na segunda inclusão?

Share this post


Link to post
Share on other sites
Flatdnl

Bruno,

Poderia me dar um exemplo de como ficaria o código?

não consigo acessar os campos da outra entidade na 1º instancia...

Share this post


Link to post
Share on other sites
Caça

Vê se tiras daqui algumas ideias, atenção que está em 4.0


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Flatdnl

Caça...

Mais uma vez obrigado...

Justamente isso que eu queria, uma alternativa ao TransactionScope()...

Apliquei como esta na Wiki na versão 3.5 e funcionou também!

Muito obrigado!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.