protected virtual Expression VisitContains(ContainsExpression node)
 {
     Visit(node.Column);
     Append("IN (");
     Visit(node.Content);
     Append(")", false);
     return(node);
 }
Пример #2
0
        private ContainsExpression BuildContainsExpression(MethodCallExpression methodCallExpression)
        {
            var constant   = (ConstantExpression)BuildExpression(methodCallExpression.Arguments[0]);
            var enumerable = constant.Value as IEnumerable;

            if (enumerable == null)
            {
                throw new NotSupportedException("Invalid type: " + constant.Value.GetType());
            }

            var containsExpression = new ContainsExpression((ColumnExpression)BuildExpression(methodCallExpression.Arguments[1]),
                                                            enumerable
                                                            );

            return(containsExpression);
        }
Пример #3
0
        private ContainsExpression BuildContainsExpression(MethodCallExpression methodCallExpression)
        {
            var containsExpression = new ContainsExpression
            {
                Column = (ColumnExpression)BuildExpression(methodCallExpression.Arguments[1])
            };

            var constant   = (ConstantExpression)BuildExpression(methodCallExpression.Arguments[0]);
            var enumerable = constant.Value as IEnumerable;

            if (enumerable == null)
            {
                throw new NotSupportedException("Invalid type: " + constant.Value.GetType());
            }

            foreach (var value in enumerable)
            {
                containsExpression.AddContent(Expression.Constant(value));
            }
            return(containsExpression);
        }
 protected virtual Expression VisitContains(ContainsExpression node)
 {
     Visit(node.Column);
     Append("IN (");
     Visit(node.Content);
     Append(")", false);
     return node;
 }