Nous utilisons Entity Framework et exécutons des tests unitaires dans une étendue de transaction. Nous avions l'origine de l'erreur dans le titre.Impossible d'accéder à un objet éliminé. Transaction
J'ai réussi à isoler le problème quelque chose.
using (TransactionScope scope1 = new TransactionScope())
{
using (TransactionScope scope2 = new TransactionScope())
{
// Here there is no code
}
using (Entities se = new Entities())
{
EntityConnection entityConnection = (EntityConnection)se.Connection;
DbConnection storeConnection = entityConnection.StoreConnection;
storeConnection.Open(); // On this line the error occurs
// Some code that runs a stored procedure
}
}
L'erreur que nous sommes en train de se déplacer est « L'opération est valable pour l'état de la transaction .. »
Si je retire SCOPE2 de transaction, tout fonctionne bien.
Si je marque la portée 2 comme une transaction ambiante, cela fonctionne également très bien.
Merci, qui fixe, je manquais le scope2.complete() –