public static ITransactionState Delete <TEntry>(this ITransactionStateTransformer transactionStateTransformer, ITransactionState transactionState, TEntry entry, int?expectedVersion, out IOperation operation)
        {
            if (transactionStateTransformer == null)
            {
                throw new ArgumentNullException(nameof(transactionStateTransformer));
            }

            return(transactionStateTransformer.Delete(transactionState, typeof(TEntry), entry, expectedVersion, out operation));
        }
        public static ITransactionState Delete(this ITransactionStateTransformer transactionStateTransformer, ITransactionState transactionState, Type entryType, object entry, int?expectedVersion, out IOperation operation)
        {
            if (transactionStateTransformer == null)
            {
                throw new ArgumentNullException(nameof(transactionStateTransformer));
            }

            return(transactionStateTransformer.AddOperation(transactionState, OperationType.Delete, entryType, entry, expectedVersion, out operation));
        }