Я понимаю, что вы всегда должны использовать транзакции.Я также вижу, что NHibernate.ITransaction реализует Dispose, поэтому мне нужно обернуть свой объект ITransaction в оператор использования.Значит ли это, что для каждого не репозитивного метода (т.е. обновления, редактирования ...) я должен объявить:
using (ITransaction _transaction = _session.BeginTransaction(//isolationlevel)) {
//procedure code here
}
Есть ли способ, которым я могу обернуть это (я не вижучто я могу).
Кроме того, лучше ли мне обернуть как метод session.SaveOrUpdate (), так и транзакцию.Commit () в Try / Catch?
using (_transaction = _session.BeginTransaction(IsolationLevel.ReadCommitted) {
try {
_session.SaveOrUpdate(entity);
try {
_transaction.Commit();
catch (//some exception ex) {
_transaction.RollBack();
}
}
catch (//some exception ex) {
//log ex
}
}
ИлиЕсть ли лучший способ, такой как использование методов сеанса и транзакции в одном и том же try / catch?
Спасибо,