/// <summary>
 ///     Clones this dependency parameter object with one service replaced.
 /// </summary>
 /// <param name="relationalParameterBasedQueryTranslationPostprocessorFactory"> A replacement for the current dependency of this type. </param>
 /// <returns> A new parameter object with the given service replaced. </returns>
 public RelationalShapedQueryCompilingExpressionVisitorDependencies With(
     [NotNull] IRelationalParameterBasedQueryTranslationPostprocessorFactory relationalParameterBasedQueryTranslationPostprocessorFactory)
 => new RelationalShapedQueryCompilingExpressionVisitorDependencies(
     QuerySqlGeneratorFactory,
     SqlExpressionFactory,
     ParameterNameGeneratorFactory,
     relationalParameterBasedQueryTranslationPostprocessorFactory);
 public RelationalCommandCache(
     IMemoryCache memoryCache,
     ISqlExpressionFactory sqlExpressionFactory,
     IQuerySqlGeneratorFactory querySqlGeneratorFactory,
     IRelationalParameterBasedQueryTranslationPostprocessorFactory relationalParameterBasedQueryTranslationPostprocessorFactory,
     bool useRelationalNulls,
     SelectExpression selectExpression)
 {
     _memoryCache = memoryCache;
     _querySqlGeneratorFactory = querySqlGeneratorFactory;
     _selectExpression         = selectExpression;
     _relationalParameterBasedQueryTranslationPostprocessor = relationalParameterBasedQueryTranslationPostprocessorFactory.Create(useRelationalNulls);
 }
        public RelationalShapedQueryCompilingExpressionVisitorDependencies(
            [NotNull] IQuerySqlGeneratorFactory querySqlGeneratorFactory,
            [NotNull] ISqlExpressionFactory sqlExpressionFactory,
            [NotNull] IParameterNameGeneratorFactory parameterNameGeneratorFactory,
            [NotNull] IRelationalParameterBasedQueryTranslationPostprocessorFactory relationalParameterBasedQueryTranslationPostprocessorFactory)
        {
            Check.NotNull(querySqlGeneratorFactory, nameof(querySqlGeneratorFactory));
            Check.NotNull(sqlExpressionFactory, nameof(sqlExpressionFactory));
            Check.NotNull(parameterNameGeneratorFactory, nameof(parameterNameGeneratorFactory));
            Check.NotNull(relationalParameterBasedQueryTranslationPostprocessorFactory, nameof(relationalParameterBasedQueryTranslationPostprocessorFactory));

            QuerySqlGeneratorFactory      = querySqlGeneratorFactory;
            SqlExpressionFactory          = sqlExpressionFactory;
            ParameterNameGeneratorFactory = parameterNameGeneratorFactory;
            RelationalParameterBasedQueryTranslationPostprocessorFactory = relationalParameterBasedQueryTranslationPostprocessorFactory;
        }