/// <summary> /// 实例化 <see cref="NpgMethodCallExressionVisitor"/> 类的新实例 /// </summary> public NpgMethodCallExressionVisitor(IDbQueryProvider provider, ExpressionVisitorBase visitor) : base(provider, visitor) { _provider = provider; _visitor = visitor; _builder = visitor.SqlBuilder; _visitedMark = _visitor.VisitedMark; }
/// <summary> /// 初始化 <see cref="OrderByExpressionVisitor"/> 类的新实例 /// </summary> public OrderByExpressionVisitor(IDbQueryProvider provider, TableAliasCache aliases, List <DbExpression> qOrder, DbExpression groupBy = null, string alias = null) : base(provider, aliases, null, false) { _qOrder = qOrder; _aliases = aliases; _groupBy = groupBy; _alias = alias; _provider = provider; }
/// <summary> /// 实例化 <see cref="SqlServerMethodCallExressionVisitor"/> 类的新实例 /// </summary> /// <param name="provider">查询语义提供者</param> /// <param name="visitor">表达式访问器</param> public MySqlMethodCallExressionVisitor(IDbQueryProvider provider, ExpressionVisitorBase visitor) : base(provider, visitor) { _provider = provider; _visitor = visitor; _builder = visitor.SqlBuilder; _visitedMark = _visitor.VisitedStack; _dbValue = _provider.DbValue; }
/// <summary> /// 初始化 <see cref="OrderByExpressionVisitor"/> 类的新实例 /// </summary> /// <param name="provider">查询语义提供者</param> /// <param name="aliases">表别名集合</param> /// <param name="orderBy">ORDER BY 子句</param> /// <param name="groupBy">GROUP BY 子句</param> /// <param name="alias">指定的表别名</param> public OrderByExpressionVisitor(IDbQueryProvider provider, TableAlias aliases, List <DbExpression> orderBy, DbExpression groupBy = null, string alias = null) : base(provider, aliases, null) { _orderBy = orderBy; _aliases = aliases; _groupBy = groupBy; _alias = alias; _provider = provider; }
/// <summary> /// 初始化 <see cref="StatisExpressionVisitor"/> 类的新实例 /// </summary> public StatisExpressionVisitor(IDbQueryProvider provider, TableAliasCache aliases, DbExpression statis, DbExpression groupBy = null, string alias = null) : base(provider, aliases, statis.Expressions != null ? statis.Expressions[0] : null, false) { _provider = provider; _aliases = aliases; _statis = statis; _groupBy = groupBy; _alias = alias; }
/// <summary> /// 实例化 <see cref="SqlBuilderBase"/> 类的新实例 /// </summary> /// <param name="provider">查询语义提供者</param> /// <param name="token">解析上下文参数</param> public SqlBuilderBase(IDbQueryProvider provider, ParserToken token) { _provider = provider; _token = token; _innerBuilder = new StringBuilder(128); _escCharLeft = _provider.QuotePrefix; _escCharRight = _provider.QuoteSuffix; _escCharQuote = _provider.SingleQuoteChar; }
public SqlBuilderBase(IDbQueryProvider provider, List <IDbDataParameter> parameters = null) { _provider = provider; _parameters = parameters; _innerBuilder = new StringBuilder(128); _escCharLeft = _provider.QuotePrefix; _escCharRight = _provider.QuoteSuffix; _escCharQuote = _provider.SingleQuoteChar; }
/// <summary> /// 初始化 <see cref="AggregateExpressionVisitor"/> 类的新实例 /// </summary> /// <param name="provider">查询语义提供者</param> /// <param name="aliases">表别名集合</param> /// <param name="aggregate">聚合函数表达式</param> /// <param name="groupBy">Group by 子句</param> /// <param name="alias">指定的别名</param> public AggregateExpressionVisitor(IDbQueryProvider provider, TableAlias aliases, DbExpression aggregate, DbExpression groupBy = null, string alias = null) : base(provider, aliases, aggregate.Expressions != null ? aggregate.Expressions[0] : null) { _provider = provider; _aliases = aliases; _aggregate = aggregate; _groupBy = groupBy; _alias = alias; }
/// <summary> /// 实例化 <see cref="MappingCommand"/> 类的新实例 /// </summary> /// <param name="provider">数据查询提供者</param> /// <param name="aliases">别名</param> /// <param name="token">解析上下文参数</param> public MappingCommand(IDbQueryProvider provider, TableAliasCache aliases, ResolveToken token) : base(string.Empty, token != null ? token.Parameters : null, System.Data.CommandType.Text) { _provider = provider; _aliases = aliases; _navMembers = new Dictionary <string, MemberExpression>(); _joinFragment = provider.CreateSqlBuilder(token); _whereFragment = provider.CreateSqlBuilder(token); }
/// <summary> /// 实例化 <see cref="DbCommandDefinition_Select"/> 类的新实例 /// </summary> /// <param name="provider">数据查询提供者</param> /// <param name="aliases">别名</param> /// <param name="parameters">已存在的参数列表</param> public DbCommandDefinition_Select(IDbQueryProvider provider, TableAliasCache aliases, List <IDbDataParameter> parameters) : base(string.Empty, null, System.Data.CommandType.Text) { _provider = provider; _aliases = aliases; _navMembers = new Dictionary <string, MemberExpression>(); _joinFragment = provider.CreateSqlBuilder(parameters); _whereFragment = provider.CreateSqlBuilder(parameters); }
/// <summary> /// 实例化 <see cref="SqlBuilder"/> 类的新实例 /// </summary> /// <param name="provider">查询语义提供者</param> /// <param name="token">解析上下文参数</param> public SqlBuilder(IDbQueryProvider provider, ResolveToken token) { _provider = provider; _dbValue = provider.DbValue; _token = token; _innerBuilder = new StringBuilder(128); _escCharLeft = _provider.QuotePrefix; _escCharRight = _provider.QuoteSuffix; _escCharQuote = _provider.SingleQuoteChar; }
/// <summary> /// 实例化 <see cref="SelectCommand"/> 类的新实例 /// </summary> /// <param name="provider">数据查询提供者</param> /// <param name="aliases">别名</param> /// <param name="token">解析上下文参数</param> public SelectCommand(IDbQueryProvider provider, TableAliasCache aliases, ParserToken token) : base(string.Empty, null, System.Data.CommandType.Text) { _provider = provider; _aliases = aliases; _navMembers = new Dictionary <string, MemberExpression>(); _joinFragment = provider.CreateSqlBuilder(token); _whereFragment = provider.CreateSqlBuilder(token); }
/// <summary> /// 初始化 <see cref="JoinExpressionVisitor"/> 类的新实例 /// </summary> public NpgJoinExpressionVisitor(IDbQueryProvider provider, TableAliasCache aliases, List <DbExpression> qJoin, NpgCommandType operationType) : base(provider, aliases, null, false) { _qJoin = qJoin; _aliases = aliases; _operationType = operationType; if (_operationType == NpgCommandType.DELETE) { _keywordName = "USING"; } else if (_operationType == NpgCommandType.UPDATE) { _keywordName = "FROM"; } }
/// <summary> /// 初始化 <see cref="ColumnExpressionVisitor"/> 类的新实例 /// </summary> public ColumnExpressionVisitor(IDbQueryProvider provider, TableAliasCache aliases, IDbQueryableInfo_Select qQuery) : base(provider, aliases, qQuery.Select.Expressions != null ? qQuery.Select.Expressions[0] : null) { _provider = provider; _aliases = aliases; _qQuery = qQuery; _groupBy = qQuery.GroupBy; _include = qQuery.Includes; if (_pickColumns == null) { _pickColumns = new ColumnCollection(); } _navigations = new NavigationCollection(); _navChainHopper = new List <string>(10); }
/// <summary> /// 初始化 <see cref="ColumnExpressionVisitor"/> 类的新实例 /// </summary> /// <param name="provider">查询语义提供者</param> /// <param name="aliases">表别名集合</param> /// <param name="dbQuery">查询语义</param> public ColumnExpressionVisitor(IDbQueryProvider provider, TableAlias aliases, IDbQueryableInfo_Select dbQuery) : base(provider, aliases, dbQuery.Select.Expressions != null ? dbQuery.Select.Expressions[0] : null) { _provider = provider; _aliases = aliases; _dbQuery = dbQuery; _groupBy = dbQuery.GroupBy; _include = dbQuery.Includes; if (_pickColumns == null) { _pickColumns = new DbColumnCollection(); } _navDescriptors = new NavDescriptorCollection(); _navDescriptorKeys = new List <string>(10); }
/// <summary> /// 实例化 <see cref="Builder" /> 的新实例 /// </summary> public NpgDeleteDbCommandDefinition(IDbQueryProvider provider, TableAliasCache aliases, NpgCommandType operationType, List <IDbDataParameter> parameters) : base(provider, aliases, parameters) { _provider = provider; _aliases = aliases; _onPhrase = _provider.CreateSqlBuilder(parameters); _operationType = operationType; if (_operationType == NpgCommandType.DELETE) { _keywordName = "USING"; } else if (_operationType == NpgCommandType.UPDATE) { _keywordName = "FROM"; } }
/// <summary> /// 实例化 <see cref="Builder" /> 的新实例 /// </summary> /// <param name="token">参数列表,NULL 或者 Parameters=NULL 时表示不使用参数化</param> public NpgSelectInfoCommand(IDbQueryProvider provider, TableAliasCache aliases, NpgCommandType operationType, ParserToken token) : base(provider, aliases, token) { _provider = provider; _aliases = aliases; _onPhrase = _provider.CreateSqlBuilder(token); _operationType = operationType; if (_operationType == NpgCommandType.DELETE) { _keywordName = "USING"; } else if (_operationType == NpgCommandType.UPDATE) { _keywordName = "FROM"; } }
/// <summary> /// 初始化 <see cref="NpgJoinExpressionVisitor"/> 类的新实例 /// </summary> public NpgJoinExpressionVisitor(IDbQueryProvider provider, TableAliasCache aliases, List <DbExpression> qJoin, DbExpressionType dbExpressionType) : base(provider, aliases, qJoin) { _qJoin = qJoin; _aliases = aliases; _provider = provider; _dbExpressionType = dbExpressionType; if (_dbExpressionType == DbExpressionType.Delete) { _keywordName = "USING "; } else if (_dbExpressionType == DbExpressionType.Update) { _keywordName = "FROM "; } _pad = "".PadLeft(_keywordName.Length, ' '); }
/// <summary> /// 实例化 <see cref="NpgMappingDbCommand" /> 的新实例 /// </summary> /// <param name="provider">数据查询提供者</param> /// <param name="aliases">别名</param> /// <param name="dbExpressionType">表达式类型</param> /// <param name="token">解析上下文参数</param> public NpgMappingDbCommand(IDbQueryProvider provider, TableAlias aliases, DbExpressionType dbExpressionType, ResolveToken token) : base(provider, aliases, token) { _provider = provider; _aliases = aliases; _onPhrase = _provider.CreateSqlBuilder(token); _dbExpressionType = dbExpressionType; if (_dbExpressionType == DbExpressionType.Delete) { _keywordName = "USING "; } else if (_dbExpressionType == DbExpressionType.Update) { _keywordName = "FROM "; } _pad = "".PadLeft(_keywordName.Length, ' '); }
/// <summary> /// 初始化 <see cref="WhereExpressionVisitor"/> 类的新实例 /// </summary> public WhereExpressionVisitor(IDbQueryProvider provider, TableAliasCache aliases, DbExpression dbExpression) : base(provider, aliases, dbExpression != null && dbExpression.Expressions != null ? dbExpression.Expressions[0] : null) { _expression = base.Expression; }
/// <summary> /// 初始化 <see cref="NavPredicateExpressionVisitor"/> 类的新实例 /// </summary> /// <param name="provider">查询语义提供者</param> /// <param name="aliases">表别名集合</param> /// <param name="predicate">要访问的表达式</param> /// <param name="alias">指定的表别名</param> public NavPredicateExpressionVisitor(IDbQueryProvider provider, TableAlias aliases, Expression predicate, string alias) : base(provider, aliases, predicate) { _expression = base.Expression; _alias = alias; }
public DbRepository(IDbConnection connection, IDbQueryProvider queryProvider) { _connection = connection ?? throw new ArgumentNullException(nameof(connection)); _queryProvider = queryProvider ?? throw new ArgumentNullException(nameof(queryProvider)); }
/// <summary> /// 初始化 <see cref="GroupByExpressionVisitor"/> 类的新实例 /// </summary> public GroupByExpressionVisitor(IDbQueryProvider provider, TableAliasCache aliases, DbExpression groupBy) : base(provider, aliases, groupBy != null ? groupBy.Expressions[0] : null, false) { }
/// <summary> /// 初始化 <see cref="DbContextBase"/> 类的新实例 /// <param name="connString">数据库连接字符串</param> /// <param name="commandTimeout">执行命令超时时间</param> /// </summary> public DbContextBase(string connString, int?commandTimeout) { _database = (Database)this.CreateDatabase(connString, commandTimeout); _provider = this.CreateQueryProvider(); _provider.DbProviderFactory = _database.DbProviderFactory; }
/// <summary> /// 初始化 <see cref="OracleUpdateExpressionVisitor"/> 类的新实例 /// </summary> /// <param name="provider">查询语义提供者</param> /// <param name="aliases">表别名集合</param> /// <param name="expression">要访问的表达式</param> public OracleUpdateExpressionVisitor(IDbQueryProvider provider, TableAlias aliases, Expression expression) : base(provider, aliases, expression) { _provider = provider; _aliases = aliases; }
/// <summary> /// 初始化 <see cref="NpgUpdateExpressionVisitor"/> 类的新实例 /// </summary> public NpgUpdateExpressionVisitor(IDbQueryProvider provider, TableAliasCache aliases, Expression exp) : base(provider, aliases, exp) { _provider = provider; _aliases = aliases; }
// MySQL 8.0以上版本没有 nvarchar,nchar 的类型 // https://dev.mysql.com/doc/refman/8.0/en/charset-national.html //timestamp: //yyyymmddhhmmss格式表示的时间戳值,TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。 //也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。TIMESTAMP值返回后显示为’YYYY-MM-DD HH:MM:SS’格式的字符串,显示宽度固定为19个字符。如果想要获得数字值,应在TIMESTAMP 列添加+0。 /// <summary> /// 实例化 <see cref="MySqlBuilder"/> 类的新实例 /// </summary> /// <param name="provider">提供者</param> /// <param name="parameters">参数化</param> public MySqlBuilder(IDbQueryProvider provider, List <IDbDataParameter> parameters = null) : base(provider, parameters) { }
/// <summary> /// 实例化 <see cref="SqlMethodCallExressionVisitor"/> 类的新实例 /// </summary> public SqlMethodCallExressionVisitor(IDbQueryProvider provider, ExpressionVisitorBase visitor) : base(provider, visitor) { }
// MySQL 8.0以上版本没有 nvarchar,nchar 的类型 // https://dev.mysql.com/doc/refman/8.0/en/charset-national.html //timestamp: //yyyymmddhhmmss格式表示的时间戳值,TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。 //也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。TIMESTAMP值返回后显示为’YYYY-MM-DD HH:MM:SS’格式的字符串,显示宽度固定为19个字符。如果想要获得数字值,应在TIMESTAMP 列添加+0。 /// <summary> /// 实例化 <see cref="MySqlBuilder"/> 类的新实例 /// </summary> /// <param name="provider">提供者</param> /// <param name="token">参数列表,NULL 或者 Parameters=NULL 时表示不使用参数化</param> public MySqlBuilder(IDbQueryProvider provider, ParserToken token) : base(provider, token) { }
/// <summary> /// 初始化 <see cref="NpgWhereExpressionVisitor"/> 类的新实例 /// </summary> public NpgWhereExpressionVisitor(IDbQueryProvider provider, TableAliasCache aliases, DbExpression exp) : base(provider, aliases, exp) { _expression = exp != null && exp.Expressions != null ? exp.Expressions[0] : null; }