В моем проекте DAL является службой WCF .Net4.0. используя базу данных оракула 11g. Я использую область транзакции в WCF (на стороне сервера).
Я должен вызвать более одной хранимой процедуры внутри метода (контракт операции), если какой-либо один sp не удалось, мне нужно откат уже выполненного sp. Но отката не произошло. Я не использовал поток транзакций на стороне клиента.
Я поместил образец кода
Публичный класс Сервис: IService
{
public bool Method1()
{
using (TransactionScope Scope1 = new TransactionScope())
{
Method2();
Method3();
Scope1.Complete();
}
return true;
}
public bool Method2()
{
using (TransactionScope Scope2 = new TransactionScope())
{
// Procedure call .....
Scope2.Complete();
}
return true;
}
public bool Method3()
{
using (TransactionScope Scope3 = new TransactionScope())
{
// Procedure call .....
Scope3.Complete();
}
return true;
}
}