Neo4j如何返回节点和关系?

Neo4j如何返回节点和关系?,neo4j,neo4jclient,Neo4j,Neo4jclient,我正在使用Neo4jClient编写一个演示。我的演示有两个节点:Beer和BeerBrand,其中一个节点是由propertise ReleaseDay建立的。我写这段代码是为了得到生产特定啤酒的BeerBrand节点 var isMadeBy = beer .StartCypher("b") .Match("b-[r:IS_MADE]->e") .Return<Node<Beer

我正在使用
Neo4jClient
编写一个演示。我的演示有两个节点:Beer和BeerBrand,其中一个节点是由propertise ReleaseDay建立的。我写这段代码是为了得到生产特定啤酒的BeerBrand节点

var isMadeBy = beer
                .StartCypher("b")
                .Match("b-[r:IS_MADE]->e")
                .Return<Node<BeerBrand>>("e")                
                .Results.ToList();
var isMadeBy=啤酒
.StartCypher(“b”)
.匹配(“b-[r:IS_MADE]->e”)
.返回(“e”)
.Results.ToList();
现在,我想知道你们的关系*

var isMadeBy = beer
                .StartCypher("b")
                .Match("b-[r:IS_MADE]->e")
                 .Return<Relationship<IsMade>>("r")
                .Results.ToList();
var isMadeBy=啤酒
.StartCypher(“b”)
.匹配(“b-[r:IS_MADE]->e”)
.回报(“r”)
.Results.ToList();
但是,错误被抛出了

class IsMade must be non-abstract type with a public parameterless constructor 
in order to use it as parameters 'TData' in the generic type or 
method 'Neo4jClient.Relationship<TData>'
类IsMade必须是具有公共无参数构造函数的非抽象类型
以将其用作泛型类型中的参数“TData”,或
方法“Neo4jClient.Relationship”

你能帮我解决这个问题吗?

你看过维基了吗

如果您不需要关系Id,请尝试:

var isMadeBy = beer
     .StartCypher("b")
     .Match("b-[r:IS_MADE]->e")
     .Return((r, e) => new {
          isMadeRelationship = r.As<Node<SomeObjectWithAPublicConstructor>>()
          beerBrand = e.As<Node<BeerBrand>>()
      })
      .Results.ToList();
var isMadeBy=啤酒
.StartCypher(“b”)
.匹配(“b-[r:IS_MADE]->e”)
.返回((r,e)=>新建{
IsMaderRelationship=r.As()
beerBrand=e.As()
})
.Results.ToList();

这里有一个类似问题的答案:这将为您提供应该遵循的指南

本质上,您需要向关系中添加一个无参数构造函数,以允许客户端(特别是-JSON.NET)能够将关系从数据库中的内容反序列化到代码中。基本上-JSON.NET无法理解如何构建关系,因为它不知道构造函数中的参数与什么相关


您可能还需要将返回的“Relationship”更改为“RelationshipInstance”。

我应用了您的代码,但它引发了一个错误:[MissingMethodException:没有为此对象定义无参数构造函数。]您需要一个具有公共构造函数的对象。为什么要投否决票?你用的是什么版本的Neo4J?