Neo4j驱动程序C#展开对象列表

Neo4j驱动程序C#展开对象列表,c#,neo4j,neo4j-driver,C#,Neo4j,Neo4j Driver,我正在研究如何将对象列表(内存中)展开到Neo4J4.0中。下面是我以前使用Neo4jClient nuget时所做的,但我必须改用Neo4j.Driver nuget Neo4jClient(旧版) Neo4j驱动程序(到目前为止已完成) 遗憾的是,Neo4j驱动程序非常简单——您需要手工构建Cypher查询,在需要的地方引用参数,然后将这些参数传递到查询中 var session = driver.AsyncSession(o => o.WithDatabase("neo4j"));

我正在研究如何将对象列表(内存中)展开到Neo4J4.0中。下面是我以前使用Neo4jClient nuget时所做的,但我必须改用Neo4j.Driver nuget

Neo4jClient(旧版)

Neo4j驱动程序(到目前为止已完成)


遗憾的是,Neo4j驱动程序非常简单——您需要手工构建Cypher查询,在需要的地方引用参数,然后将这些参数传递到查询中

var session = driver.AsyncSession(o => o.WithDatabase("neo4j"));
try
{
    towns = towns.OrderBy(tt => tt.Id).ToList();
    foreach (var t in towns.Split(5000))
    {
        Console.WriteLine($"Saving {t.Count:N0} of {town.Count:N0} Towns...");

        // Just return the town name - in your case, you'd MERGE or whatever, this is 
        // just an example
        var query = new Query("UNWIND {towns} AS town RETURN town", new Dictionary<string, object>
        {
            { "towns", towns }
        });

        var result = await session.RunAsync(query);
    }
}
catch (Exception ex)
{
    string error = $"ERROR (ADD TOWNS): {ex.ToString()}";
    Console.WriteLine(error);
}
finally
{
    await session.CloseAsync();
}
var session=driver.AsyncSession(o=>o.WithDatabase(“neo4j”);
尝试
{
towns=towns.OrderBy(tt=>tt.Id.ToList();
foreach(城镇中的var t.分割(5000))
{
Console.WriteLine($“保存{town.Count:N0}个城镇的{t.Count:N0}…”);
//只需返回城镇名称-在您的情况下,您可以合并或其他方式,这是
//只是一个例子
var query=新查询(“将{towns}作为城镇返回城镇展开”,新字典
{
{“城镇”,城镇}
});
var result=wait session.RunAsync(查询);
}
}
捕获(例外情况除外)
{
字符串错误=$“错误(添加城镇):{ex.ToString()}”;
控制台写入线(错误);
}
最后
{
等待会话。CloseAsync();
}
var session = driver.AsyncSession(o => o.WithDatabase("neo4j"));
        try
        {
            towns = towns.OrderBy(tt => tt.Id).ToList();
            foreach (var t in towns.Split(5000))
            {
                    Console.WriteLine($"Saving {t.Count:N0} of {town.Count:N0} Towns...");    
        **//STUCK HERE DOING UNWIND**  
            }
        }
        catch (Exception ex)
        {
            string error = $"ERROR (ADD TOWNS): {ex.ToString()}";           
            Console.WriteLine(error);
        }
        finally
        {
            await session.CloseAsync();
        }
var session = driver.AsyncSession(o => o.WithDatabase("neo4j"));
try
{
    towns = towns.OrderBy(tt => tt.Id).ToList();
    foreach (var t in towns.Split(5000))
    {
        Console.WriteLine($"Saving {t.Count:N0} of {town.Count:N0} Towns...");

        // Just return the town name - in your case, you'd MERGE or whatever, this is 
        // just an example
        var query = new Query("UNWIND {towns} AS town RETURN town", new Dictionary<string, object>
        {
            { "towns", towns }
        });

        var result = await session.RunAsync(query);
    }
}
catch (Exception ex)
{
    string error = $"ERROR (ADD TOWNS): {ex.ToString()}";
    Console.WriteLine(error);
}
finally
{
    await session.CloseAsync();
}