public override string DealExpression(Expression exp, bool need = false)
        {
            string sql = base.DealExpression(exp);

            if (!String.IsNullOrEmpty(sql))
            {
                return(sql);
            }
            MemberExpression b_exp = exp as MemberExpression;

            if (b_exp.Expression != null)
            {
                if (b_exp.Expression.GetType().Name == "TypedParameterExpression")
                {
                    return(b_exp.Member.Name);
                }
                return(ExpressionTypeUtil.Eval(b_exp).ToString());
            }


            Type         type         = b_exp.Member.ReflectedType;
            PropertyInfo propertyInfo = type.GetProperty(b_exp.Member.Name, BindingFlags.Static | BindingFlags.Public);
            object       o;

            if (propertyInfo != null)
            {
                o = propertyInfo.GetValue(null);
            }
            else
            {
                FieldInfo field = type.GetField(b_exp.Member.Name, BindingFlags.Static | BindingFlags.Public);
                o = field.GetValue(null);
            }
            return(ExpressionTypeUtil.GetValueFormat(o));
        }
Esempio n. 2
0
        public override string DealExpression(Expression exp, bool need = false)
        {
            string sql = base.DealExpression(exp);

            if (!String.IsNullOrEmpty(sql))
            {
                return(sql);
            }
            ConstantExpression expression = exp as ConstantExpression;
            var ccc = expression.Value.GetType();

            if (expression.Value == null)
            {
                return("NULL");
            }
            return(ExpressionTypeUtil.GetValueFormat(expression.Value));
        }
 private string DealBinary(BinaryExpression exp)
 {
     return(DealExpression(exp.Left) + ExpressionTypeUtil.NullValueDeal(exp.NodeType, DealExpression(exp.Right, true)));
 }