public void DoTransaction(Action action) { try { _engine.BeginAction(); bool succeed = false; try { _engine.BeginTransaction(); action(); succeed = true; } finally { _engine.FinishTransaction(succeed); } } finally { _engine.FinishAction(); } }