Пример #1
0
        /// <summary>
        /// 转换表达式
        /// </summary>
        /// <param name="converter">表达式转换器</param>
        /// <param name="expression">表达式</param>
        private void convertInSet(sql.expression.converter converter, Expression expression)
        {
            charStream       stream           = converter.Stream;
            BinaryExpression binaryExpression = (BinaryExpression)expression;
            Expression       left             = binaryExpression.Left;

            converters[(int)left.NodeType](converter, left);
            stream.Write(" In(");
            func <object, string> toString = null;
            int index = -1;

            foreach (object value in (IEnumerable)((ConstantExpression)binaryExpression.Right).Value)
            {
                if (++index == 0)
                {
                    toString = constantConverter.Default[value.GetType()];
                }
                else
                {
                    stream.Write(',');
                }
                stream.Write(toString != null ? toString(value) : constantConverter.convertConstantStringMssql(value.ToString()));
            }
            stream.Write(')');
        }
Пример #2
0
        /// <summary>
        /// 转换表达式
        /// </summary>
        /// <param name="converter">表达式转换器</param>
        /// <param name="expression">表达式</param>
        private void convertInSet(sql.expression.converter converter, Expression expression)
        {
            charStream       stream           = converter.Stream;
            BinaryExpression binaryExpression = (BinaryExpression)expression;
            Expression       left             = binaryExpression.Left;

            converters[(int)left.NodeType](converter, left);
            stream.SimpleWriteNotNull(" In(");
            Action <charStream, object> toString = null;
            int index = -1;

            foreach (object value in (IEnumerable)((ConstantExpression)binaryExpression.Right).Value)
            {
                if (++index == 0)
                {
                    toString = constantConverter[value.GetType()];
                }
                else
                {
                    stream.Write(',');
                }
                if (toString == null)
                {
                    stringConverter(stream, value.ToString());
                }
                else
                {
                    toString(stream, value);
                }
            }
            stream.Write(')');
        }
Пример #3
0
        /// <summary>
        /// 转换表达式
        /// </summary>
        /// <param name="converter">表达式转换器</param>
        /// <param name="expression">表达式</param>
        private void convertConstant(sql.expression.converter converter, Expression expression)
        {
            object value = ((ConstantExpression)expression).Value;

            if (value != null)
            {
                func <object, string> toString = constantConverter.Default[value.GetType()];
                if (toString != null)
                {
                    converter.Stream.Write(toString(value));
                }
                else
                {
                    converter.Stream.Write(constantConverter.convertConstantStringMssql(value.ToString()));
                }
            }
            else
            {
                converter.Stream.Write("null");
            }
        }
Пример #4
0
        /// <summary>
        /// 转换表达式
        /// </summary>
        /// <param name="converter">表达式转换器</param>
        /// <param name="expression">表达式</param>
        private void convertConstant(sql.expression.converter converter, Expression expression)
        {
            object value = ((ConstantExpression)expression).Value;

            if (value != null)
            {
                Action <charStream, object> toString = constantConverter[value.GetType()];
                if (toString != null)
                {
                    toString(converter.Stream, value);
                }
                else
                {
                    stringConverter(converter.Stream, value.ToString());
                }
            }
            else
            {
                fastCSharp.web.ajax.WriteNull(converter.Stream);
            }
        }