Neo4jClient 我如何 return 动态图的所有节点、关系和参数
Neo4jClient How can I return all nodes, relationships and parameters for a dynamic graph
我正在构建一个应用程序,其中节点标签、参数和关系将由我的用户设置,因此某一层之后的节点、rel 和 prop 将完全动态且不可预测。我的问题是如何 运行 以下查询并将结果映射到某种可用于可视化重建图形的列表。使用 neo4jClient.
我直接使用 Neo4j 浏览器的查询效果很好
Match(a:User),(b:Work)-->(n) Where a.UserId =
'xxxx' AND b.Name = 'CompanyA' Return b, n
在 c# 中我有这个,但它是我坚持的 return 部分。
client.Cypher.Match("(a:User), (b:Work) --> (n)")
.Where("(a.UserId = '" + userId + "')").AndWhere("(b.Name = name"
.Return((a,n)).Results;
有什么想法吗?
Neo4jClient
无法直接帮助您,问题(从 C# 的角度来看)是客户端试图将结果反序列化为具体的 C# 类型,而您没有提供任何...
你最好的选择是按照这个问题的答案做同样的事情(使用 dynamic
):Casting nodes of an unknown type
所以,你最终会得到这样的结果:
var query = client.Cypher
.Match("(a:User), (b:Work) --> (n)")
.Where("a.UserId = {userIdParam}")
.AndWhere("b.Name = {bNameParam}")
.WithParams( new {
userIdParam = userId,
bNameParam = name
})
.Return((a,n) => new {
A = a.As<User>(),
N = n.As<Node<string>>()
});
var results = query.Results.ToList();
var nNodes = new List<dynamic>();
foreach(var result in results)
{
nNodes.Add(JsonConvert.DeserializeObject<dynamic>(result.N.Data));
}
nNodes
将包含一个 dynamic
对象的集合,您可以使用这些对象做您想做的事。
我正在构建一个应用程序,其中节点标签、参数和关系将由我的用户设置,因此某一层之后的节点、rel 和 prop 将完全动态且不可预测。我的问题是如何 运行 以下查询并将结果映射到某种可用于可视化重建图形的列表。使用 neo4jClient.
我直接使用 Neo4j 浏览器的查询效果很好
Match(a:User),(b:Work)-->(n) Where a.UserId =
'xxxx' AND b.Name = 'CompanyA' Return b, n
在 c# 中我有这个,但它是我坚持的 return 部分。
client.Cypher.Match("(a:User), (b:Work) --> (n)")
.Where("(a.UserId = '" + userId + "')").AndWhere("(b.Name = name"
.Return((a,n)).Results;
有什么想法吗?
Neo4jClient
无法直接帮助您,问题(从 C# 的角度来看)是客户端试图将结果反序列化为具体的 C# 类型,而您没有提供任何...
你最好的选择是按照这个问题的答案做同样的事情(使用 dynamic
):Casting nodes of an unknown type
所以,你最终会得到这样的结果:
var query = client.Cypher
.Match("(a:User), (b:Work) --> (n)")
.Where("a.UserId = {userIdParam}")
.AndWhere("b.Name = {bNameParam}")
.WithParams( new {
userIdParam = userId,
bNameParam = name
})
.Return((a,n) => new {
A = a.As<User>(),
N = n.As<Node<string>>()
});
var results = query.Results.ToList();
var nNodes = new List<dynamic>();
foreach(var result in results)
{
nNodes.Add(JsonConvert.DeserializeObject<dynamic>(result.N.Data));
}
nNodes
将包含一个 dynamic
对象的集合,您可以使用这些对象做您想做的事。