Доброе утро всем,
У меня есть код, подобный следующему
try{
using(var tx = new TransactionScope()){
var Xupdated = someDao.DoSomeUpdateQuery(); //this dao uses MS Data ApplicationBlock
var Yupdated = someDao.DoSomeOtherUpdateQuery(); //this dao also uses MS Data ApplicationBlock
if(Xupdated && Yupdated)
{
tx.Complete();
}
}
} catch(Exception ex){
DoSomethingWithTheException();
}
У методов дао есть код, подобный этому
try{
var db = DatabaseFactory.CreateDatabase();
var cmd = db.GetStoredProcCommand(someSP);
var retVal = db.ExecuteNonQuery(cmd);
return (retVal > 0);
} catch (SqlException ex){
CustomException custom = new CustomException(ex.Message, ex);
throw custom;
}
Проблема здесь в том, что когда Yupdated возвращает false, я хочу, чтобы DoSomeUpdateQuery () откатывался.К сожалению, изменения DoSomeUpdateQuery () зафиксированы.Как я могу исправить это?Я ставлю точку останова и tx.Complete () никогда не вызывается.Кто-нибудь знает, как я могу получить соответствующее желаемое поведение здесь?Заранее спасибо за любые указатели.
Приветствия,
~ CK в Сан-Диего