Пример #1
0
            protected override Expression VisitMemberAccess(MemberExpression node)
            {
                using (_parameterScope.NewScope())
                {
                    node = (MemberExpression)base.VisitMemberAccess(node);

                    if (!_parameterScope.HasParameters && typeof(IQueryable).IsAssignableFrom(node.Type))
                    {
                        var lambda = Expression.Lambda <Func <object> >(node);
                        var value  = lambda.Compile()();
                        if (value is IRemoteLinqQueryable)
                        {
                            return(Expression.Constant(value, node.Type));
                        }
                    }

                    return(node);
                }
            }