private static object EvaluateProperty(IDataItem dataItem, string expression)
        {
            var visitor = new DataItemMemberEvaluationVisitor();

            new JavascriptMemberExpression(expression).Accept(visitor);
            return(visitor.GetAccessor()(dataItem));
        }
            public PartitionKeyExtractor(string partitionKeyProperty)
            {
                Guard.NotEmpty("partitionKeyProperty", partitionKeyProperty);

                var evaluationVisitor = new DataItemMemberEvaluationVisitor();

                new JavascriptMemberExpression(partitionKeyProperty).Accept(evaluationVisitor);
                partitionKeyExtractor = evaluationVisitor.GetAccessor();
            }