public CustomQueryProvider(ConnectionStringSettings connectionString,
                            ISqlExpressionVisitor sqlGenerator,
                            IModelBuilder modelBuilder,
                            ILogger logger)
     : base(connectionString, sqlGenerator, modelBuilder, logger)
 {
 }
 public CustomQueryProvider(DbConnection connection,
                            ISqlExpressionVisitor sqlGenerator,
                            IModelBuilder modelBuilder,
                            ILogger logger)
     : base(connection, sqlGenerator, modelBuilder, logger)
 {
 }
Beispiel #3
0
        /// <inheritdoc />
        public void Delete(Expression <Func <T, bool> > condition)
        {
            Check.NotNull(condition, nameof(condition));

            ISqlExpressionVisitor generator = _provider.GetExpressionVisitor();

            WhereExpression where = generator.GenerateWhereCondition(condition.Body);

            _deleteExpressions.Add(where);
        }
Beispiel #4
0
        void IQueryBaseInternal.ApplyQueryFilter(IDatabaseMapper databaseMapper, ISqlExpressionVisitor expressionVisitor)
        {
            SelectExpression   select = SelectExpression;
            IQueryBaseInternal query  = select?.OriginalQuery;

            if (query != null && !query.IgnoreQueryFilters)
            {
                TableInfo tableInfo = databaseMapper.GetTableInfo(select.EntityType);
                if (tableInfo.QueryFilter != null)
                {
                    WhereExpression queryFilter =
                        expressionVisitor.GenerateWhereCondition(tableInfo.QueryFilter, DefaultQueryFilterParameterNamePrefix);
                    select.SetWhereExpression(queryFilter);
                }
            }
        }
Beispiel #5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="QueryProvider" /> class.
        /// </summary>
        /// <param name="externalConnection">The connection.</param>
        /// <param name="sqlGenerator">The SQL generator.</param>
        /// <param name="modelBuilder">The model builder.</param>
        /// <param name="logger">The logger.</param>
        public QueryProvider(
            DbConnection externalConnection,
            ISqlExpressionVisitor sqlGenerator,
            IModelBuilder modelBuilder,
            ILogger logger)
        {
            Check.NotNull(externalConnection, nameof(externalConnection));
            Check.NotNull(sqlGenerator, nameof(sqlGenerator));
            Check.NotNull(modelBuilder, nameof(modelBuilder));
            Check.NotNull(logger, nameof(logger));

            _logger              = logger;
            _connection          = externalConnection;
            IsExternalConnection = true;
            _sqlGenerator        = sqlGenerator;
            _modelBuilder        = modelBuilder;
            _transactionHelper   = new Lazy <TransactionHelper>(() => new TransactionHelper(Connection));
        }
Beispiel #6
0
        /// <summary>
        /// Initializes a new instance of the <see cref="QueryProvider" /> class.
        /// </summary>
        /// <param name="connectionSettings">The connection string settings.</param>
        /// <param name="sqlGenerator">The SQL generator.</param>
        /// <param name="modelBuilder">The model builder.</param>
        /// <param name="logger">The logger.</param>
        public QueryProvider(
            ConnectionStringSettings connectionSettings,
            ISqlExpressionVisitor sqlGenerator,
            IModelBuilder modelBuilder,
            ILogger logger)
        {
            Check.NotNull(connectionSettings, nameof(connectionSettings));
            Check.NotNull(sqlGenerator, nameof(sqlGenerator));
            Check.NotNull(modelBuilder, nameof(modelBuilder));
            Check.NotNull(logger, nameof(logger));

            _logger              = logger;
            _connectionSettings  = connectionSettings;
            IsExternalConnection = false;
            _sqlGenerator        = sqlGenerator;
            _modelBuilder        = modelBuilder;
            _transactionHelper   = new Lazy <TransactionHelper>(() => new TransactionHelper(Connection));
        }
Beispiel #7
0
 public TOutput AcceptVisitor <TContext, TOutput>(ISqlExpressionVisitor <TContext, TOutput> visitor, TContext context)
 {
     EnsureArg.IsNotNull(visitor, nameof(visitor));
     return(visitor.VisitSqlRoot(this, context));
 }
Beispiel #8
0
 public TOutput AcceptVisitor <TContext, TOutput>(ISqlExpressionVisitor <TContext, TOutput> visitor, TContext context)
 {
     return(visitor.VisitTable(this, context));
 }
 public override void Accept(ISqlExpressionVisitor visitor) => visitor.Visit(this);
Beispiel #10
0
 public abstract void Accept(ISqlExpressionVisitor visitor);