title: Neo4j: How to return multiple paths from different starting nodes
body: <p>I have a question similar to
  <a href="https://stackoverflow.com/questions/21514056/neo4j-java-traversal-from-multiple-start-points">this question</a> but I am using the c# with the neo4jClient instead of the Java. </p>
  
  <p>I can get the parent path of a given node with the following code but it becomes a performance bottle neck when trying to find the parent path of many nodes.  <strong>What I would like is a way to call the graph database once with a list of node keys and get back a list of parent paths.  So that I can return a dictionary of results instead of a single list.</strong>  </p>
  
  <p>Any help accomplishing this would be greatly appreciated!  Also if my original cypher query can be improved I'm open to that as well.</p>
  
  <pre><code>    public IEnumerable&lt;IGenericEntity&gt; GetPath(string entityCompositeKey, GraphRelationship relationship)
      {
          var entity = new GenericEntity();
          entity.setCompositeKey(entityCompositeKey);
          var pathToRoot = new List&lt;GenericEntity&gt;(){ entity };
  
          var query = new CypherFluentQuery(graphClient)
                      .Match("p = (current)-[r:" + relationship.Name + "*0..]-&gt;()")
                      .Where((IGenericEntity current) =&gt; current.CompositeKey == entityCompositeKey)
                      .Return(() =&gt; Return.As&lt;IEnumerable&lt;GenericEntity&gt;&gt;("nodes(p)"))
                      .OrderByDescending("length(p)")
                      .Limit(10);
  
          var queryText = query.Query.QueryText;
          var paramText = query.Query.QueryParameters;
          if (query.Results != null)
          {
              var graphResults = query.Results.FirstOrDefault();
              if (graphResults != null &amp;&amp; graphResults.ToList().Count &gt; 0)
              {
                  pathToRoot = graphResults.ToList();
              }
          }
          return pathToRoot;
      }
  </code></pre>