using Neo4j.Driver; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TestNeo4jDriver { class Program { static void Main(string[] args) { Task> task = Task.Run>(async () => await GetPeopleApocAsync()); var result = task.Result; } public static async Task> GetPeopleApocAsync() { IDriver _driver = GraphDatabase.Driver("neo4j://10.10.3.23:7687/", AuthTokens.Basic("neo4j", "*********")); var session = _driver.AsyncSession(); var query = @"MATCH (p:Person {name: 'Test1'} ) CALL apoc.path.subgraphAll(p, { minLevel: 1, maxLevel: 10 }) YIELD nodes, relationships RETURN *"; try { return await session.ReadTransactionAsync(async tx => { var result = await tx.RunAsync(query); return await result.ToListAsync(); }); } finally { await session.CloseAsync(); } } public static async Task> GetPeopleSimpleAsync() { IDriver _driver = GraphDatabase.Driver("neo4j://10.10.3.23:7687/", AuthTokens.Basic("neo4j", "********")); var session = _driver.AsyncSession(); var query = @"MATCH (p:Person {name: 'Test1'})-[r]-(b) RETURN *"; try { return await session.ReadTransactionAsync(async tx => { var result = await tx.RunAsync(query); return await result.ToListAsync(); }); } finally { await session.CloseAsync(); } } } }