/// <summary>
 /// 初始化Sql查询语句类
 /// </summary>
 /// <param name="baseCommand">源Sql语句</param>
 /// <param name="parameterOne">参数一</param>
 /// <param name="parameterTwo">参数二</param>
 /// <param name="op">条件运算符</param>
 internal SqlBasicParameterCondition(AbstractSqlCommand baseCommand, SqlParameter parameterOne, SqlParameter parameterTwo, SqlOperator op)
     : base(baseCommand)
 {
     this._parameterOne = parameterOne;
     this._parameterTwo = parameterTwo;
     this._operator = op;
 }
 /// <summary>
 /// 初始化Sql查询语句类
 /// </summary>
 /// <param name="baseCommand">源Sql语句</param>
 /// <param name="columnName">字段名称</param>
 /// <param name="op">条件运算符</param>
 /// <param name="command">选择语句</param>
 internal SqlBasicCommandCondition(AbstractSqlCommand baseCommand, String columnName, SqlOperator op, SelectCommand command)
     : base(baseCommand)
 {
     this._columnName = columnName;
     this._operator = op;
     this._command = command;
 }
Ejemplo n.º 3
0
        /// <summary>
        /// 获取一定包含数据类型的表达式所指的列特性
        /// </summary>
        /// <param name="sourceCommand">来源Sql语句</param>
        /// <param name="expr">表达式</param>
        /// <returns>表达式所指的列特性</returns>
        internal static DatabaseColumnAttribute GetColumnAttributeWithDataType(AbstractSqlCommand sourceCommand, MemberExpression expr)
        {
            DatabaseColumnAttribute attr = ExpressionHelper.GetColumnAttribute(sourceCommand, expr);

            if (attr != null && !attr.DataType.HasValue)
            {
                attr.DataType = DataTypeHelper.InternalGetDataType(expr.Type);
            }

            return(attr);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 获取表达式所指的列特性
        /// </summary>
        /// <param name="sourceCommand">来源Sql语句</param>
        /// <param name="expr">表达式</param>
        /// <returns>表达式所指的列特性</returns>
        internal static DatabaseColumnAttribute GetColumnAttribute(AbstractSqlCommand sourceCommand, MemberExpression expr)
        {
            DatabaseColumnAttribute attr = (sourceCommand != null && sourceCommand.SourceDatabaseTable != null ? sourceCommand.SourceDatabaseTable[expr.Member.Name] : null);

            if (attr == null)
            {
                attr = EntityHelper.InternalGetColumnAttribute(expr.Member.DeclaringType, expr.Member.Name);
            }

            return(attr);
        }
        /// <summary>
        /// 初始化Sql IN参数条件语句类
        /// </summary>
        /// <param name="baseCommand">源Sql语句</param>
        /// <param name="isNotIn">是否不在范围内</param>
        /// <param name="parameters">参数集合</param>
        internal SqlInsideParametersCondition(AbstractSqlCommand baseCommand, Boolean isNotIn, params SqlParameter[] parameters)
            : base(baseCommand)
        {
            this._isNotIn = isNotIn;
            this._parameters = new List<SqlParameter>();

            if (parameters != null)
            {
                this._parameters.AddRange(parameters);
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 获取指定实体类的Sql语句参数集合
        /// </summary>
        /// <param name="cmd">Sql语句</param>
        /// <param name="entity">实体类</param>
        /// <returns>Sql语句参数集合</returns>
        internal static DataParameter[] InternalGetSqlParameters(AbstractSqlCommand cmd, Object entity)
        {
            List <DataParameter> parameters = new List <DataParameter>();

            if (entity == null)
            {
                return(parameters.ToArray());
            }

            Type entityType = entity.GetType();

            PropertyInfo[] props = entityType.GetProperties();

            foreach (PropertyInfo prop in props)
            {
                DatabaseColumnAttribute attr = null;
                DataType?dataType            = null;
                Object[] objs = prop.GetCustomAttributes(TypeOfDatabaseColumnAttribute, true);

                foreach (Object obj in objs)
                {
                    if ((attr = obj as DatabaseColumnAttribute) != null)
                    {
                        break;
                    }
                }

                if (attr != null)
                {
                    dataType = attr.DataType;

                    if (!dataType.HasValue)
                    {
                        dataType = DataTypeHelper.InternalGetDataType(prop.PropertyType);
                    }

                    DataParameter parameter = cmd.CreateDataParameter(attr.ColumnName, dataType.Value, prop.GetValue(entity, null));
                    parameters.Add(parameter);
                }
            }

            return(parameters.ToArray());
        }
 /// <summary>
 /// 初始化新的Sql抽象条件语句
 /// </summary>
 /// <param name="baseCommand">源Sql语句</param>
 internal AbstractSqlCondition(AbstractSqlCommand baseCommand)
 {
     this._baseCommand = baseCommand;
 }
Ejemplo n.º 8
0
 /// <summary>
 /// 创建新的Sql选择语句
 /// </summary>
 /// <param name="rootSource">创建时的根来源</param>
 /// <param name="from">选择的从Sql语句</param>
 /// <param name="fromAliasesName">从Sql语句的别名</param>
 /// <returns>Sql选择语句</returns>
 internal SelectCommand InternalCreateSelectCommand(AbstractSqlCommand rootSource, SelectCommand from, String fromAliasesName)
 {
     return(new SelectCommand(this, rootSource, from, fromAliasesName));
 }
Ejemplo n.º 9
0
 /// <summary>
 /// 创建新的Sql选择语句
 /// </summary>
 /// <param name="rootSource">创建时的根来源</param>
 /// <param name="tableName">数据表名称</param>
 /// <param name="tableAliasesName">数据表别名</param>
 /// <returns>Sql选择语句</returns>
 internal SelectCommand InternalCreateSelectCommand(AbstractSqlCommand rootSource, String tableName, String tableAliasesName)
 {
     return(new SelectCommand(this, rootSource, tableName + ' ' + tableAliasesName));
 }
Ejemplo n.º 10
0
        /// <summary>
        /// 获取表达式所指的列名
        /// </summary>
        /// <param name="sourceCommand">来源Sql语句</param>
        /// <param name="expr">表达式</param>
        /// <returns>表达式所指的列名</returns>
        internal static String GetColumnName(AbstractSqlCommand sourceCommand, MemberExpression expr)
        {
            DatabaseColumnAttribute attr = ExpressionHelper.GetColumnAttribute(sourceCommand, expr);

            return(attr != null ? attr.ColumnName : String.Empty);
        }
Ejemplo n.º 11
0
 /// <summary>
 /// 初始化Sql Not条件语句类
 /// </summary>
 /// <param name="baseCommand">源Sql语句</param>
 /// <param name="baseCondition">基础Sql条件语句</param>
 internal SqlNotCondition(AbstractSqlCommand baseCommand, ISqlCondition baseCondition)
     : base(baseCommand)
 {
     this._baseCondition = baseCondition;
 }