使用Neo4jClient的对象关系映射

本文关键字:关系 映射 对象 Neo4jClient 使用 | 更新日期: 2023-09-27 17:51:08

让我们考虑一下这个结构:

(parent) –[:HAS_CHILD]-> (child) –[:HAS_DOG]-> (dog)

现在我将使用下面的密码查询来返回一种层次结构:

MATCH (p:Parent) -[:HAS_CHILD]-> (c:Child) -[:HAS_DOG]-> (d: Dog)
WITH p, collect(distinct(c)) as children, d
RETURN p, children, collect(distinct(d))

然而,如果我能在实体框架中有相同的映射(在Parent类中有一个子列表),这将会容易得多:

public class Parent
{
    public string Id { get; set; }
    public string Name { get; set; }
    public List<Child> Children { get; set; }
}
public class Child
{
    public string Id { get; set; }
    public string Name { get; set; }
    public List<Dog> Dogs { get; set; }
}
public class Dog
{
    public string Id { get; set; }
    public string Name { get; set; }
}

有办法吗?

使用Neo4jClient的对象关系映射

把Neo4jClient看作是。net中的SqlConnectionSqlCommand。它提供了语言绑定,帮助您以安全有效的方式构造查询,然后检索结果。

它不是一个ORM,像实体框架。

就像实体框架使用SqlConnection一样,如果你想的话,你可以在Neo4jClient之上构建一个。有人在这里开了一个:http://www.nuget.org/packages/Neo4jRepository/