Ich versuche mit Neo4j in .Net mit Neo4jClient. Ich versuche, den besten Weg zu finden, den folgenden konkreten C# -Klassen zu füllen:Zurückgeben eines Knotens und seiner Beziehungen und verbundenen Knoten in eine konkrete Klasse mit Neo4jClient
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
public class PersonData
{
public Person Person { get; set; }
public List<Relation> Relations { get; set; }
public List<string> Labels { get; set; }
}
public class Relation
{
public Person Relative {get; set;}
public string Relationship { get; set; }
}
ich habe derzeit folgendes Grunddiagrammmodell:
(p:Person{ id: 1, name: 'Fred', age: 42})-[r:PARENT_OF]->(c:Person{ id: 2, name: 'Sarah', age: 8})
auch mit anderen Beziehungstypen, z.B. VERHEIRATET MIT.
Ich habe derzeit die folgende Abfrage, und ich möchte einen bestimmten Personenknoten erhalten, und es ist Beziehungen (dh die zugehörigen Personenknoten und eine Zeichenfolge, was der Beziehungstyp ist, könnte der Beziehungstyp oder ein Wert sein die Beziehung), um PersonData zu füllen. Ich kann momentan Person leicht bevölkern, aber ich weiß nicht, wie ich Beziehungen bevölkern kann.
var data = client.Cypher
.Match("(p:Person)-[r*1..1]->(per:Person)")
.Where((Person p) => p.Id == 3)
.Return((p, per) => new PersonData
{
Person = p.As<Person>()
})
.Results;
Ist diese Population von Personendaten etwas werde ich außerhalb der Abfrage zu tun haben, oder es kann in der return-Anweisung geschehen?
Ich habe auch das zusätzliche Problem, dass diese Abfrage den Knoten mit ID 3 zweimal zurückgibt, und ich weiß nicht warum.
Vielen Dank.
Dank @ Chris, groß war man auf der Graph Connect zu sehen :) – tekiegirl