爲了保存(虛擬)銀行賬戶交易清單,我希望業務實體能夠反映保存到數據庫的狀態,以防發生異常。Repository.SaveOrUpdate(),在異常時執行回滾的確定性?
我可以認爲這裏的異常還意味着事務回滾了嗎?或者我可以明確地回滾一下,以確保?如果是這樣,那麼該行會拋出異常呢?
在庫< T>:
public void SaveOrUpdate(IList<T> entityList)
{
using (ISession session = FluentNHibernateManager.OpenSession())
{
using (ITransaction transaction = session.BeginTransaction())
{
try
{
foreach (T entity in entityList)
session.SaveOrUpdate(entity);
transaction.Commit();
}
catch (Exception e)
{
MyTrace.Exception(e.ToString());
// add this line? transaction.Rollback();
throw;
}
}
}
}
在某些類別:
cashTransactions.Add(t);
try {
GenericRepository<CashTransaction> repo = new GenericRepository<CashTransaction>();
repo.SaveOrUpdate(cashTransactions);
} catch (Exception ex) {
cashTransactions.Remove(t);
}