private static SqlCaluse SelectCount(MethodCallExpression exp, SqlCaluse sqlCaluse)
        {
            var a = exp.Arguments[0];

            ExpressionVisit.SelectMethod(a, sqlCaluse);
            AddColumn(sqlCaluse, "\n COUNT(CASE WHEN{0} THEN 1 ELSE null END) ");
            return(sqlCaluse);
        }
        protected override SqlCaluse SelectMethod(BinaryExpression exp, SqlCaluse sqlCaluse)
        {
            ExpressionVisit.SelectMethod(exp.Left, sqlCaluse);
            var insertIndex = sqlCaluse.SelectMethod.Length;

            ExpressionVisit.SelectMethod(exp.Right, sqlCaluse);
            var endIndex = sqlCaluse.SelectMethod.Length;
            var b        = endIndex - insertIndex == 5 && sqlCaluse.SelectMethod.ToString().EndsWith("null");

            OperatorParser(exp.NodeType, insertIndex, sqlCaluse.SelectMethod, b, false);
            return(sqlCaluse);
        }
 private static SqlCaluse SelectGroupConcat(MethodCallExpression exp, SqlCaluse sqlCaluse)
 {
     if (sqlCaluse.DbType == 2)
     {
         var a = exp.Arguments[0];
         ExpressionVisit.SelectMethod(a, sqlCaluse);
         AddColumn(sqlCaluse, "\n GROUP_CONCAT({0}) ");
     }
     else
     {
         throw new Exception("GroupConcat 只支持 MySql");
     }
     return(sqlCaluse);
 }
 protected override SqlCaluse SelectMethod(LambdaExpression exp, SqlCaluse sqlCaluse)
 {
     ExpressionVisit.SelectMethod(exp.Body, sqlCaluse);
     return(sqlCaluse);
 }
Beispiel #5
0
 protected override SqlCaluse SelectMethod(UnaryExpression exp, SqlCaluse sqlCaluse)
 {
     ExpressionVisit.SelectMethod(exp.Operand, sqlCaluse);
     return(sqlCaluse);
 }