Я хочу иметь что-то вроде субтранзакций, в которых вы можете пометить точку, в которой вы бы начали субтранзакцию, а затем в точке принятия решения для этого бита вы можете выполнить откат (прервать суб-транзакцию).бит) или продолжайте, эффективно совершая, когда завершает исходящий переход.Конечно, если вы прерываете внешнюю транзакцию, отмеченный бит также прерывается.
Как я могу сделать это с NHibernate, но транзакция закрывается во время первого коммита, и поэтому у меня появляется сообщение об ошибке
нет открытых транзакций для фиксации
Мой код выглядит следующим образом:
API.Data.Session session = API.Data.SessionManager.GetSession();
session.BeginTransaction();
try
{
Project project = Project.Load(ID);
...........
Save(project);
.....................
session.CommitTransaction();
}
catch
{
session.RollbackTransaction();
throw;
}
public void save(Project project)
{
Data.SessionManager.GetSession().BeginTransaction();
try
{
Save();
LogIssueChange(test);
Data.SessionManager.GetSession().CommitTransaction();
}
catch
{
Data.SessionManager.GetSession().RollbackTransaction();
throw;
}
}