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); }
protected override SqlCaluse SelectMethod(UnaryExpression exp, SqlCaluse sqlCaluse) { ExpressionVisit.SelectMethod(exp.Operand, sqlCaluse); return(sqlCaluse); }