0

私はNeo4jClientデモを書くために使用しています。私のデモにはBeerBeerBrandの 2 つのノードがあり、1 つの関係 Is_Made にはプロパティ ReleaseDayがあります。特定のビールを作ったノードBeerBrandを取得するために、このコードを書きました。

var isMadeBy = beer
                .StartCypher("b")
                .Match("b-[r:IS_MADE]->e")
                .Return<Node<BeerBrand>>("e")                
                .Results.ToList();

今、関係を取得したい *Is_Made*

var isMadeBy = beer
                .StartCypher("b")
                .Match("b-[r:IS_MADE]->e")
                 .Return<Relationship<IsMade>>("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>'

この問題を解決するのを手伝ってもらえますか?

4

2 に答える 2

0

wiki見てみたら?http://hg.readify.net/neo4jclient/wiki/cypher

リレーションシップ 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();
于 2013-05-27T02:24:19.680 に答える
0

同様の質問に対する回答がここにあります: Neo4jClient - Retrifying relationship from Cypher queryに従うべきガイドを提供します。

本質的に、クライアント (および特に - JSON.NET) が DB にあるものからコードへの関係を逆シリアル化できるようにするには、パラメーターなしのコンストラクターを関係に追加する必要があります。基本的に - JSON.NET は、コンストラクターのパラメーターが何に関連しているかがわからないため、関係を構築する方法を理解できません。

また、'Relationship' を 'RelationshipInstance' に戻す必要がある場合もあります。

于 2013-07-22T09:35:36.090 に答える