public SQLiteTransactionalDataSource BeginTransaction(IsolationLevel? isolationLevel = null, bool forwardEvents = true)
{
IDisposable lockToken = null;
if (!DisableLocks)
lockToken = SyncLock.WriterLock();
var connection = CreateConnection();
SQLiteTransaction transaction;
if (isolationLevel == null)
transaction = connection.BeginTransaction();
else
transaction = connection.BeginTransaction(isolationLevel.Value);
return new SQLiteTransactionalDataSource(this, forwardEvents, connection, transaction, lockToken);
}