public DefaultImpatientQueryProcessor( IImpatientQueryCache queryCache, IQueryProcessingContextFactory queryProcessingContextFactory, IQueryableInliningExpressionVisitorFactory queryableInliningExpressionVisitorFactory, IOptimizingExpressionVisitorProvider optimizingExpressionVisitorProvider, IComposingExpressionVisitorProvider composingExpressionVisitorProvider, ICompilingExpressionVisitorProvider compilingExpressionVisitorProvider, IDbCommandExecutorFactory dbCommandExecutorFactory) { this.queryCache = queryCache ?? throw new ArgumentNullException(nameof(queryCache)); this.queryProcessingContextFactory = queryProcessingContextFactory ?? throw new ArgumentNullException(nameof(queryProcessingContextFactory)); this.queryableInliningExpressionVisitorFactory = queryableInliningExpressionVisitorFactory ?? throw new ArgumentNullException(nameof(queryableInliningExpressionVisitorFactory)); this.optimizingExpressionVisitorProvider = optimizingExpressionVisitorProvider ?? throw new ArgumentNullException(nameof(optimizingExpressionVisitorProvider)); this.composingExpressionVisitorProvider = composingExpressionVisitorProvider ?? throw new ArgumentNullException(nameof(composingExpressionVisitorProvider)); this.compilingExpressionVisitorProvider = compilingExpressionVisitorProvider ?? throw new ArgumentNullException(nameof(compilingExpressionVisitorProvider)); this.dbCommandExecutorFactory = dbCommandExecutorFactory ?? throw new ArgumentNullException(nameof(dbCommandExecutorFactory)); }