Чтобы сохранить список транзакций (виртуальных) банковских счетов, я хочу, чтобы бизнес-объект отражал состояние, сохраненное в базе данных, также в случае исключения.
Можно ли предположить, что исключение здесь также означает, что транзакция откатывается? Или я могу явно откатиться в улове чтобы быть уверенным? Если так, что если эта строка выдает исключение?
В хранилище :
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);
}