c# - Neo4jClient C#如何获取所有节点

标签 c# neo4jclient

我在 C# 中使用 Neo4jClient 和 Neo4j 图形数据库,我想知道如何使用 Neo4jClient 检索所有节点。

这是密码查询,用于检索所有与“KNOWS”有关系的节点,而与关系方向无关:

start n =node(*) match n-[r:KNOWS]-(friend) return friend;

这是带有 Neo4jClient 的 C# 代码:

var client = new GraphClient(new Uri("http://localhost:7474/db/data"));
client.Connect();

var cypherFluentQueryReturned = client.RootNode
                .StartCypher("n")
                .Match("n-[:KNOWS]->friend")
                .Return<Node<Person>>("friend");

但是 Neo4jClient 不允许从 * 中检索所有节点,而只能从起点检索,这里是根节点。
我如何使用 Neo4jClient 来检索所有节点,而不仅仅是附加到根节点的节点?

似乎没有办法通过 Neo4jClient.GraphClient 从 * 查询节点。

但是我可以通过使用 RawGraphClient 执行查询来做到这一点:

CypherQuery query = new CypherQuery("start n=node(*) match n-[KNOWS]-(person) return person", new Dictionary<string, object>(), CypherResultMode.Set);
var persons = ((IRawGraphClient)client).ExecuteGetCypherResults<Person>(query).ToList();

最佳答案

使用 Node<T>.StartCypher(identity)是创建查询并一次启动所有查询的快捷方式。

相反,直接从客户端创建您的查询:

client
    .Cypher
    .Start(new { n = All.Nodes })
    .Return<object>("n")

然后,您就可以完全控制 START条款。

关于c# - Neo4jClient C#如何获取所有节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12884172/

相关文章:

powershell - 返回重载失败

c# - 在c#中从Neo4j数据库返回所有节点

c# - Neo4jClient 创建和更新关系

c# - 确定哪个控件最接近鼠标指针

c# - 如何使用neo4j的.net客户端检查两个节点之间是否存在关系

javascript - UWP Web View : add tags to selected text

c# - Interlocked.CompareExchange 指令重新排序初始值

c# - 使用 Neo4jClient C# 按关系属性排序

c# - 与 GUI 通信

c# - 有没有办法使 View 状态过期?