Forum
See question

Controlo de Transações dentro da WebAPI   

29 views
0
0

Pretendo garantir a criação de dois Documentos dentro do mesmo pedido á WebAPI atraves do controlo de transações.

Acontece que ao executar o primeiro Atualiza para gravar o primeiro Documento, obtenho o erro:

“SqlConnection does not support parallel transactions.”

try

{

ProductContext.Plataforma.IniciaTransaccao();

 

ProductContext.MotorLE.Compras.Documentos.Actualiza(…)

 

ProductContext.MotorLE.Vendas.Documentos.Actualiza(…)

 

ProductContext.Plataforma.TerminaTransaccao();

}

catch()

{

ProductContext.Plataforma.DesfazTransaccao();

}

Faça login para poder traduzir
V10
Marked as spam
Created 10 months and 1 week ago ricardomendes
r
ricardomendes Iniciante
1 answers
0
Private answer

Bom dia

Isso acontece porque o Metodo Actualiza também é executado numa Transaction e nesse sentido, está a ser criada uma nova transação, quando a anterior ainda não foi terminada.

Em vez de ProductContext.Plataforma.IniciaTransaccao(); sugiro a utilização de uma TransactionScope

Consulte: https://learn.microsoft.com/en-us/dotnet/api/system.transactions.transactionscope?redirectedfrom=MSDN&view=net-7.0

 

Faça login para poder traduzir
Marked as spam
Created 10 months and 1 week ago antniomdias
a
antniomdias Responsiveness Member
    Comments
    Obrigado pela sugestão, no entanto penso que ela não se aplica neste cenário porque as conexoes ao SQL já se encontram abertas e como tal ficam fora do TransactionScope.
    10 months and 1 week ago
    ricardomendes