.net - 如何在 Neo4jClient 中检索路径?

标签 .net neo4jclient

我最近开始使用 Neo4JClient 进行 .NET 集成,并且我(最终)已经解决了大部分问题。然而,这个却难倒了我。

我有兴趣从 Cypher 查询获取路径,最好是在 POCO 对象中,这样我就可以在这些查询的前端工作。

所以我的问题本质上是如何在 Neo4JClient 中执行此操作?如果我不能,其他 Neo4J .NET 客户端是否支持此功能?

示例密码查询:

start n = node:idx(id="{id}")

MATCH p=(n)-[:RELATED_TO*0..3]-()

RETURN p;

所以,我希望特定节点周围的所有节点的传入和传出关系深度为 3。还有另一种类型的查询,但它使用 withs,我需要找出 Neo4JClient 是否/如何支持它(另一个不过有问题)。

到目前为止,我一直在使用具有开放集和封闭集的 Gremlin 来使用有关其子关系的信息来填充自定义对象。它绝不是有效的,因此为什么我想以某种方式使用路径来做到这一点。有问题的自定义对象看起来有点像这样。

public class ConnectedNode : BaseNode
{
    public List<NodeRelation> RelatedNodes { get; set; }

    public ConnectedNode()
    {
        RelatedNodes = new List<NodeRelation>();
    }
}

public class NodeRelation
{
    // ... various properties for relationship payload type stuff
    public ConnectedNode RelatedNode { get; set; }
    public RelationshipDirection Direction { get; set; }
}

只要高效,我就很高兴能够在我正在寻找的路径上拉回节点和关系数据。

最佳答案

你尝试过吗:

ICypherFluentQueryReturned<PathsResult> query
    = graphClient.Cypher
                    .StartWithNodeIndexLookup("n", "idx", "id", id)
                    .Match("p=(n)-[:RELATED_TO*0..2]-()")
                    .Return<PathsResult>("p");
IEnumerable<PathsResult> res = query.Results;

res 中的每个结果都应该是您想要的结果?

关于.net - 如何在 Neo4jClient 中检索路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15108301/

相关文章:

c# - 访问 XAML 中的静态字段

.net - 构建发布时 MonoTouch 中的 WebClient 编码问题

.net - 在 .NET 中设计松散耦合的组件 - 提供者模式

c# - 无法使用 Neo4Jclient 创建项目

c# - 未使用所有内存/限制时出现内存不足异常

c# - Neo4jClient Cypher 查询收集具有多个值的语句

Neo4jClient - 从 Neo4jClient 内创建索引?

neo4j - 如何在使用 cypher 与 UNWIND 迭代时删除关系

c# - 在 Neo4jClient 中使用 UNWIND 进行 Cypher 查询

c# - 来自字符串的 MemoryStream - 关于要使用的编码的混淆