У меня есть клиентские вызовы, поступающие в службу WCF, а затем через Fluent NHibernate запрашивающие базу данных.
В данный момент WCF остается по умолчанию (т. Е. Для каждого вызова).в моем коде я делаю что-то вроде этого:
using (_repository.DbContext.BeginTransaction()) {
try {
_repository.SavePerson(object);
_repository1.SaveAddress(object1);
} catch {
_repository.DbContext.RollbackTransaction();
throw;
}
}
, поскольку DbContext
одинаково для _repository
и _repository1
.Нужно ли делать RollBack для _repository1
?
Также теперь, поскольку методы Save в репозиториях, объект Session используется для сохранения объектов.
Что мне нужно знать, так это, эта сессия одинакова для обоих вызовов, или они две разные?Я предполагаю, что они одинаковы, так как я группирую их в области транзакций как одну единицу работы.
Также Как это координируется с вызовами WCF, мне также нужно обрабатывать транзакции со стороны WCF?