2012-06-09 3 views
2

я увидел пост с таким же названием, но, к сожалению, не удалось найти soulution, посмотрев на приведенных примерахNeo4JClient: Как создать отношения?

Я создал узлам на следующие пути:

private static void createExampleNetwork(GraphClient client) 
    { 
     try 
     { 
      //CypherQuery cq = new CypherQuery(); 
      //string createNodeQuery = "CREATE (a {name : 'Andres'}) RETURN"; 
      //string response = cq.CreateRequest(createNodeQuery); 

      var myNodeReferenceA = client.Create(new ExampleNode { Name = "A" }); 
      var myNodeReferenceB = client.Create(new ExampleNode { Name = "B" }); 
      var myNodeReferenceC = client.Create(new ExampleNode { Name = "C" }); 
      var myNodeReferenceD = client.Create(new ExampleNode { Name = "D" }); 
      var myNodeReferenceE = client.Create(new ExampleNode { Name = "E" }); 
      var myNodeReferenceF = client.Create(new ExampleNode { Name = "F" }); 
      var myNodeReferenceG = client.Create(new ExampleNode { Name = "G" }); 
     } 
     catch (Exception ex) 
     { 

     } 
    } 

Я хотел бы создать следующие отношения: A - B A - C A - D C - D B - G

, но не знаю, как.

Я посмотрел на примерах http://hg.readify.net/neo4jclient/src/4693da483a90/Test/RelationshipTests.cs и http://hg.readify.net/neo4jclient/src/4693da483a90/Test/ApiUsageIdeas.cs

, но до сих пор не знают, как создаются отношения.

Я был бы очень благодарен, если бы кто-нибудь мог дать полезный пример.

ответ

4

Я нашел решение

private static void createExampleNetwork(GraphClient client) 
    { 
     try 
     { 

      var myNodeReferenceA = client.Create(new ExampleNode { Name = "A" }); 
      var myNodeReferenceB = client.Create(new ExampleNode { Name = "B" }); 
      var myNodeReferenceC = client.Create(new ExampleNode { Name = "C" }); 
      var myNodeReferenceD = client.Create(new ExampleNode { Name = "D" }); 
      var myNodeReferenceE = client.Create(new ExampleNode { Name = "E" }); 
      var myNodeReferenceF = client.Create(new ExampleNode { Name = "F" }); 
      var myNodeReferenceG = client.Create(new ExampleNode { Name = "G" }); 

      client.CreateRelationship(myNodeReferenceA, new NodeKnows(myNodeReferenceB)); 
      client.CreateRelationship(myNodeReferenceA, new NodeKnows(myNodeReferenceC)); 
      client.CreateRelationship(myNodeReferenceA, new NodeKnows(myNodeReferenceD)); 
      client.CreateRelationship(myNodeReferenceA, new NodeKnows(myNodeReferenceE)); 
      client.CreateRelationship(myNodeReferenceB, new NodeKnows(myNodeReferenceF)); 
      client.CreateRelationship(myNodeReferenceB, new NodeKnows(myNodeReferenceG)); 
      client.CreateRelationship(myNodeReferenceC, new NodeKnows(myNodeReferenceD)); 
      client.CreateRelationship(myNodeReferenceE, new NodeKnows(myNodeReferenceF)); 
     } 
     catch (Exception ex) 
     { 

     } 
    } 

public class NodeKnows :Relationship, IRelationshipAllowingSourceNode<ExampleNode>, IRelationshipAllowingTargetNode<ExampleNode> 
{ 
    public NodeKnows(NodeReference targetNode) 
     : base(targetNode) 
    { 
    } 

    public const string TypeKey = "KNOWS"; 
    public override string RelationshipTypeKey 
    { 
     get { return TypeKey; } 
    } 
} 
+0

Сэр, я использую свой пример и хотел выяснить непосредственную связь на любом уровне. Я также разместил вопрос на SO http://stackoverflow.com/questions/35252922/neo4jclient-how-to-view-the-relationship-direct-reportees#comment58229198_35252922. Посмотрите же на свое свободное время и на любой понимание того же будет ценным. благодаря –

Смежные вопросы