Ho bisogno di eseguire una stored procedure con Entity Framework.
Normalmente lo chiamo così:
this.Context.Database.ExecuteSqlCommand("EXEC edi_UploadTransmission");
Tuttavia, questa particolare stored procedure include l'accesso a un server collegato.
Poiché EF ExecuteSqlCommand
wrapping di ExecuteSqlCommand
in una transazione, non riesce, in quanto un server collegato non è supportato in una transazione (per quanto posso dire).
Esiste un modo per eseguire questa stored procedure con Entity Framework senza che si trovi in una transazione?
Passa TransactionalBehavior.DoNotEnsureTransaction
come primo parametro al metodo ExecuteSqlCommand
.
Per esempio,
this.Context.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction, "EXEC edi_UploadTransmission");
La mia raccomandazione sarebbe semplicemente non usare EF per questa parte del codice. Puoi combinare liberamente EF con il codice ADO.NET dritto o con altri ORM come Dapper o Chain.
https://github.com/docevaad/Chain/wiki/A-Chain-comparison-to-Dapper