public void Remove(params string[] keys) { keys = keys ?? throw new ArgumentNullException(nameof(keys)); var tx = Transaction.Value; if (tx == null) { _keyStorage.StoreKeys(keys); _dispatcher.DispatchToRemove(keys); } else { _keyStorage.StoreKeys(keys, tx.DbTransaction); tx.Committed += (s, e) => _dispatcher.DispatchToRemove(keys); if (tx.AutoCommit) { tx.Commit(); } } }