Commits the changes tracked by this scope. Use this method to commit the changes using a transaction controller directly. It uses the passed in controller (Adapter: an IDataAccessAdapter instance will do, SelfServicing: an ITransaction instance will do) to commit the unit of work. If the controller has already a transaction in progress, that transaction is used to perform the work, otherwise a new transaction is started. To commit the work using external code, e.g. another tier or a service, please use the CommitChanges overload which accepts a Func instead.
Commits the changes tracked by this scope using the passed in commit func. Use this method to commit the changes using logic outside this scope, e.g. a service or another tier, to which the unit of work object passed into the commitUnitOfWork func is transported. To commit the changes directly using a transaction provider by a transaction controller (Adapter: a DataAccessAdapter, SelfServicing: a Transaction object), please use the CommitChanges overload which accepts a transaction controller.