protected virtual Expression VisitContains(ContainsExpression node) { Visit(node.Column); Append("IN ("); Visit(node.Content); Append(")", false); return(node); }
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); }
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; }