我正在制作一个用于管理聊天的应用程序。Neo4j与C#:创建2个现有节点之间的关系,否则不要
我有2个C#类:
public class Person
{
public string Name { get; set; }
public string Password { get; set; }
}
public class PrivateMessage
{
public long Id { get; set; }
public string Content { get; set; }
public long Stamp { get; set; }
public bool Received { get; set; }
}
所有我想要的是创建PrivateMessage的2人之间的性关系。
我创造了这样一个暗号查询:
// Create a message from 'Doctor B' to 'Patient B'.
MATCH (Sender:Person), (Recipient:Person)
WHERE Sender.Name = 'Doctor B' AND Recipient.Name = 'Patient B'
CREATE (Sender)-[Message:SENT {Id: 0, Content: 'Hello', Stamp: 1000, Received: false}]->(Recipient)
但我不知道如何用C#进行归档。 另外,我想关系只能创建为2个节点存在,否则,它不能。
你可以看我的形象更多的细节:
正如你所看到的,我有2个实体:医生B和患者B,我可以建立它们之间的关系SENT。
但是,如果使用此查询:
MATCH(发件人:人),(开户单位:人) WHERE Sender.Name = '医生A' 和Recipient.Name = '患者A' CREATE( (收件人)
因为没有医生A和患者A,所以neo4j创建了2个发送者(发件人) - [消息:SENT {Id:0,Content:'Hello',Stamp:1000,Received:false}] - >它们之间具有SENT关系的灰色节点。
我的问题是:我如何防止这种情况,我不想在此图像中创建灰色节点。
任何人都可以帮助我吗? 谢谢。
其实我知道悬挂线,我检查节点存在的目标是防止悬挂线:)。 – Redplane
你永远不可能在Neo4j上挂起一条线,这是不可能的,一段关系有一个开始和一个结束(它们可以是相同的),但它必须有两个,而不仅仅是一个! –