1

私は Neo4J を試してみましたが、テキスト クエリは問題なく動作します。次に、.Net で Neo4JClient に切り替え、CypherFluentQuery を使用したいのですが、非常に奇妙な理由により、生成されたクエリにはノード ID が含まれず、{p0}、p{1} などのプレースホルダーのみが含まれます... )何が欠けていますか?

私の簡単なクエリの例の下に:

テキストクエリ (正常に動作):

string textQuery = "START user=node(9,7,8,10,11) " +
"MATCH user-[:is_friend_of]->isfriendof " +
"RETURN user.name as user,isfriendof.name as IsFriendOf";

CypherQuery query = new CypherQuery(textQuery,
new Dictionary<string, object>(),
CypherResultMode.Projection);
var nodes = client.ExecuteGetCypherResults<MyNode>(query).ToList();

CypherFluentQuery (THROWS EXCEPTION):

NodeReference<TestNode> node1 = new NodeReference<TestNode>(9);
NodeReference<TestNode> node2 =new NodeReference<TestNode>(7);
NodeReference<TestNode> node3 = new NodeReference<TestNode>(8);
NodeReference<TestNode> node4 = new NodeReference<TestNode>(10);
NodeReference<TestNode> node5 = new NodeReference<TestNode>(11);


NodeReference [] nodes = { node1, node2, node3, node4, node5  };
var results = new CypherFluentQuery(client)
                                    .Start("user", nodes)
                                    .Match("user-[:is_friend_of]->isfriendof")
                                    .Return<MyNode>("user.name as user,isfriendof.name as     IsFriendOf", CypherResultMode.Projection)
                                    .Results.ToList();

参照されるノード クラスは次のとおりです。

public class MyNode
{
    public string user { get; set; }
    public string IsFriendOf { get; set; }
}

public class TestNode 
{

    public string name { get; set; }
}

スローされた例外:

Received an unexpected HTTP status when executing the request.

The query was: START user=node({p0}, {p1}, {p2}, {p3}, {p4})
MATCH user-[:is_friend_of]->isfriendof
RETURN user.name as user,isfriendof.name as IsFriendOf

The response status was: 400 Bad Request

更新 Neo4JClientをナゲットで更新しましたが、明らかにExecuteGetCypherResultsを使用できないため、私の質問はこれまで以上に有効になったと思います:-/

4

1 に答える 1