J'ai un problème avec EF et le traitement des transactions.EF Transactions MSDTC?
Je suis en train de le faire:
using(TransactionScope scope = new TransactionScope())
{
using(MyEntities model = new MyEntities())
{
MyT thing = new MyT{ Value1 = "bla", Value2 = "bla2", Value3 = "foo" };
model.MyT.AddObject(thing);
model.SaveChanges();
thing.Value4 = Service.Call("bar");
// this call causes an exception in MSDTC
model.SaveChanges();
scope.Complete();
}
}
La raison pour laquelle je fais c'est parce que je veux faire un insert dans la db si MyT a un identifiant unique que je passto le service quand je fais l'appel je reçois alors un ref et un statut uniques du service dépeignant ce qui s'est passé pendant l'appel que j'ai alors besoin d'ajouter à l'enregistrement. D'après ce que je comprends, au cours d'une même transaction, vous ne pouvez mettre à jour qu'une seule fois un enregistrement/faire un appel d'insertion mais vous ne pouvez pas faire les deux car cela crée un problème pour une raison quelconque expliqué une raison logique pourquoi cela n'a pas pu être fait (probablement lié à un verrou).
Donc, mon problème est de savoir comment contourner cela, mais assurez-vous qu'en cas de défaillance de l'un de ces appels, je peux toujours revenir en arrière.
Quelle est votre question? Comment fonctionne le code que vous avez affiché? ça me va bien. –
Quelle est l'exception? – JNappi
L'exception est une exception com + qui lit simplement "l'exception s'est produite dans un objet com +" c'est-à-dire ... rien dans les journaux des événements qui n'aide pas non plus. – War