/// <summary> /// <para> /// Creates the service dependencies parameter object for a <see cref="RelationalQueryModelVisitorFactory" />. /// </para> /// <para> /// This API supports the Entity Framework Core infrastructure and is not intended to be used /// directly from your code. This API may change or be removed in future releases. /// </para> /// <para> /// Do not call this constructor directly from either provider or application code as it may change /// as new dependencies are added. Instead, use this type in your constructor so that an instance /// will be created and injected automatically by the dependency injection container. To create /// an instance with some dependent services replaced, first resolve the object from the dependency /// injection container, then replace selected services using the 'With...' methods. Do not call /// the constructor at any point in this process. /// </para> /// </summary> public RelationalQueryModelVisitorDependencies( [NotNull] IRelationalResultOperatorHandler relationalResultOperatorHandler, [NotNull] IRelationalAnnotationProvider relationalAnnotationProvider, [NotNull] IIncludeExpressionVisitorFactory includeExpressionVisitorFactory, [NotNull] ISqlTranslatingExpressionVisitorFactory sqlTranslatingExpressionVisitorFactory, [NotNull] ICompositePredicateExpressionVisitorFactory compositePredicateExpressionVisitorFactory, [NotNull] IConditionalRemovingExpressionVisitorFactory conditionalRemovingExpressionVisitorFactory, [NotNull] IQueryFlattenerFactory queryFlattenerFactory, [NotNull] IDbContextOptions contextOptions) { Check.NotNull(relationalResultOperatorHandler, nameof(relationalResultOperatorHandler)); Check.NotNull(relationalAnnotationProvider, nameof(relationalAnnotationProvider)); Check.NotNull(includeExpressionVisitorFactory, nameof(includeExpressionVisitorFactory)); Check.NotNull(sqlTranslatingExpressionVisitorFactory, nameof(sqlTranslatingExpressionVisitorFactory)); Check.NotNull(compositePredicateExpressionVisitorFactory, nameof(compositePredicateExpressionVisitorFactory)); Check.NotNull(conditionalRemovingExpressionVisitorFactory, nameof(conditionalRemovingExpressionVisitorFactory)); Check.NotNull(queryFlattenerFactory, nameof(queryFlattenerFactory)); Check.NotNull(contextOptions, nameof(contextOptions)); RelationalResultOperatorHandler = relationalResultOperatorHandler; RelationalAnnotationProvider = relationalAnnotationProvider; IncludeExpressionVisitorFactory = includeExpressionVisitorFactory; SqlTranslatingExpressionVisitorFactory = sqlTranslatingExpressionVisitorFactory; CompositePredicateExpressionVisitorFactory = compositePredicateExpressionVisitorFactory; ConditionalRemovingExpressionVisitorFactory = conditionalRemovingExpressionVisitorFactory; QueryFlattenerFactory = queryFlattenerFactory; ContextOptions = contextOptions; }
/// <summary> /// Clones this dependency parameter object with one service replaced. /// </summary> /// <param name="relationalResultOperatorHandler"> A replacement for the current dependency of this type. </param> /// <returns> A new parameter object with the given service replaced. </returns> public RelationalQueryModelVisitorDependencies With([NotNull] IRelationalResultOperatorHandler relationalResultOperatorHandler) => new RelationalQueryModelVisitorDependencies( relationalResultOperatorHandler, SqlTranslatingExpressionVisitorFactory, CompositePredicateExpressionVisitorFactory, ConditionalRemovingExpressionVisitorFactory, ContextOptions);
/// <summary> /// <para> /// Creates the service dependencies parameter object for a <see cref="RelationalQueryModelVisitorFactory" />. /// </para> /// <para> /// This API supports the Entity Framework Core infrastructure and is not intended to be used /// directly from your code. This API may change or be removed in future releases. /// </para> /// <para> /// Do not call this constructor directly from either provider or application code as it may change /// as new dependencies are added. Instead, use this type in your constructor so that an instance /// will be created and injected automatically by the dependency injection container. To create /// an instance with some dependent services replaced, first resolve the object from the dependency /// injection container, then replace selected services using the 'With...' methods. Do not call /// the constructor at any point in this process. /// </para> /// </summary> public RelationalQueryModelVisitorDependencies( [NotNull] IRelationalResultOperatorHandler relationalResultOperatorHandler, [NotNull] ISqlTranslatingExpressionVisitorFactory sqlTranslatingExpressionVisitorFactory, [NotNull] ICompositePredicateExpressionVisitorFactory compositePredicateExpressionVisitorFactory, [NotNull] IConditionalRemovingExpressionVisitorFactory conditionalRemovingExpressionVisitorFactory, [NotNull] IDbContextOptions contextOptions) { Check.NotNull(relationalResultOperatorHandler, nameof(relationalResultOperatorHandler)); Check.NotNull(sqlTranslatingExpressionVisitorFactory, nameof(sqlTranslatingExpressionVisitorFactory)); Check.NotNull(compositePredicateExpressionVisitorFactory, nameof(compositePredicateExpressionVisitorFactory)); Check.NotNull(conditionalRemovingExpressionVisitorFactory, nameof(conditionalRemovingExpressionVisitorFactory)); Check.NotNull(contextOptions, nameof(contextOptions)); RelationalResultOperatorHandler = relationalResultOperatorHandler; SqlTranslatingExpressionVisitorFactory = sqlTranslatingExpressionVisitorFactory; CompositePredicateExpressionVisitorFactory = compositePredicateExpressionVisitorFactory; ConditionalRemovingExpressionVisitorFactory = conditionalRemovingExpressionVisitorFactory; ContextOptions = contextOptions; }