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); } }