internal static void DoStaticArrayMethodCall(MethodCallExpression expression, SqlGenerate sqlGenerate)
        {
            SqlExpressionProvider.Where(expression.Arguments[expression.Arguments.Count - 1], sqlGenerate);
            sqlGenerate += " in ";

            var memberExpr = expression.Arguments[0];

            if (memberExpr.NodeType == ExpressionType.MemberAccess)
            {
                memberExpr = expression.Arguments[0] as MemberExpression;
            }

            SqlExpressionProvider.In(memberExpr, sqlGenerate);
        }
예제 #2
0
        protected override SqlGenerate In(NewArrayExpression expression, SqlGenerate sqlGenerate)
        {
            sqlGenerate += "(";
            foreach (Expression expressionItem in expression.Expressions)
            {
                SqlExpressionProvider.In(expressionItem, sqlGenerate);
            }

            if (sqlGenerate.Sql[sqlGenerate.Sql.Length - 1] == ',')
            {
                sqlGenerate.Sql.Remove(sqlGenerate.Sql.Length - 1, 1);
            }
            sqlGenerate += ")";

            return(sqlGenerate);
        }
예제 #3
0
 protected override SqlGenerate In(LambdaExpression expression, SqlGenerate sqlGenerate)
 {
     SqlExpressionProvider.In(expression.Body, sqlGenerate);
     return(sqlGenerate);
 }
 private static new void In(MethodCallExpression expression, SqlGenerate sqlGenerate)
 {
     SqlExpressionProvider.Where(expression.Arguments[0], sqlGenerate);
     sqlGenerate += " in ";
     SqlExpressionProvider.In(expression.Arguments[1], sqlGenerate);
 }
 internal static void DoEnumerableMethodCall(MethodCallExpression expression, SqlGenerate sqlGenerate)
 {
     SqlExpressionProvider.Where(expression.Arguments[0], sqlGenerate);
     sqlGenerate += " in ";
     SqlExpressionProvider.In(expression.Object, sqlGenerate);
 }