Flatdnl 0 Posted March 28, 2011 Report Share Posted March 28, 2011 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! Link to post Share on other sites
Caça 17 Posted March 28, 2011 Report Share Posted March 28, 2011 O método "SaveChanges" funciona como uma transacção Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
bruno1234 19 Posted March 28, 2011 Report Share Posted March 28, 2011 Também podes chamar o BeginTransaction explicitamente e no fim commit ou rollback Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to post Share on other sites
Flatdnl 0 Posted March 28, 2011 Author Report Share Posted March 28, 2011 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? Link to post Share on other sites
bruno1234 19 Posted March 28, 2011 Report Share Posted March 28, 2011 Ao fazeres o primeiro SaveChanges, o registo fica definitivamente gravado. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to post Share on other sites
Flatdnl 0 Posted March 28, 2011 Author Report Share Posted March 28, 2011 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? Link to post Share on other sites
bruno1234 19 Posted March 28, 2011 Report Share Posted March 28, 2011 Precisas mesmo de fazer logo o SaveChanges? Podes usar a mesma instancia com que criaste o registo (nf) no segundo insert. E assim só fazes o SaveChanges no fim dos 2. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to post Share on other sites
Flatdnl 0 Posted March 28, 2011 Author Report Share Posted March 28, 2011 Bruno, Poderia me dar um exemplo de como ficaria o código? não consigo acessar os campos da outra entidade na 1º instancia... Link to post Share on other sites
bruno1234 19 Posted March 28, 2011 Report Share Posted March 28, 2011 Exemplos não, pq n tenho como experimentar, nem sequer tenho experiencia com VB. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to post Share on other sites
Caça 17 Posted March 28, 2011 Report Share Posted March 28, 2011 Vê se tiras daqui algumas ideias, atenção que está em 4.0 Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
Flatdnl 0 Posted March 28, 2011 Author Report Share Posted March 28, 2011 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! Link to post Share on other sites
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now