Neo4jClient を使用して (C# は初めて)、Neo4j からデータを構築および取得しようとしています。まず、アイテムと検索への関係を構築します。
NodeReference<Search> searchNode = client.Create(searches[i]);
itmNode = client.Create(items[j], new IRelationshipAllowingParticipantNode<Item>[0],
new[]
{
new IndexEntry("Item")
{
{"Type", items[j].Type },
{"ItemDescription", items[j].ItemDescription },
{"ItemNumber", items[j].ItemNumber }
}
});
client.CreateRelationship(itmNode, new SearchedFor(searchNode, 1));
次に、Neo4j からのノードの取得をテストしています。
var results = client.Cypher.Start("n", itemDict[firstitem])
.Match("n-[r]->()<-[r2]-other")
.Return<Node<Item>>("other")
.Results;
var node6 = ((IRawGraphClient)client).ExecuteGetCypherResults<Node<Item>>(new Neo4jClient.Cypher.CypherQuery("start n=node(6) return n;", null,Neo4jClient.Cypher.CypherResultMode.Set)).Select(un => un.Data);
"results" は、node(6) に関連する 2 つのノードを返します。「node6」は、ノード 6 を返すと思われる別のコードです。どちらもノードを返しますが、返されるプロパティはすべて空白です。Neo4j 監視ツールでプロパティを確認できますが、Neo4jClient を使用してプロパティが返された場合は確認できません。ノードの設定方法やデータの取得方法に何か不足していますか?
私のオブジェクトの戻り値は Data.ItemDescription="", Data.ItemNumber=0, Reference=Node 5 を示しています
.Results の後に「Select(un => un.Data)」を追加すると、このような他の例で見たように機能しませんでした
さらに情報が必要な場合はお知らせください。
Neo4jClient バージョン 1.0.0.579
Neo4j バージョン 1.8.2
アイテムクラスは次のとおりです。
public class Item
{
private string _name;
private string _desc;
private long _id;
public Item(string name, string desc, long id)
{
_name = name;
_desc = desc;
_id = id;
}
public Item()
{
_name = "";
_desc = "";
_id = 0;
}
public long ItemNumber
{
get
{
return _id;
}
}
public string ItemDescription
{
get
{
return _desc;
}
}
public string Type
{
get
{
return "Item";
}
}
}