C# neo4jclient合并查询导致未处理的异常

C# neo4jclient合并查询导致未处理的异常,c#,neo4j,neo4jclient,C#,Neo4j,Neo4jclient,我想在我的neo4jclient c#应用程序中使用merge,因此我阅读并创建了如下查询: resultList.ForEach( tweets => client.Cypher .Merge("(tweet:Tweet {newtweet})") .OnCreate() .Set("tweet = {newtweet}") .WithParams(new Tweets(tweets)) .ExecuteWithoutResults()); 但它

我想在我的neo4jclient c#应用程序中使用merge,因此我阅读并创建了如下查询:

resultList.ForEach(
tweets => client.Cypher
    .Merge("(tweet:Tweet {newtweet})")
    .OnCreate()
    .Set("tweet = {newtweet}")
    .WithParams(new Tweets(tweets))
    .ExecuteWithoutResults());
但它崩溃了,我不知道我错过了什么


我的代码哪一部分是错误的?

首先定义您的tweet类:

public class Tweet {
    public long StatusId { get; set; }
    public string Author { get; set; }
    public string Content { get; set; } 
}
然后试着这样说:

var newTweet = new Tweet { StatusId = 2344
    , Author = "@AuthorName"
    , Content = "this is a tweet" };
graphClient.Cypher
    .Merge("(tweet:Tweet { StatusId: {id} })")
    .OnCreate()
    .Set("tweet = {newTweet}")
    .WithParams(new {
        id = newTweet.StatusId,
        newTweet
    })
    .ExecuteWithoutResults();

在示例链接中,如果新用户不存在,它将根据用户id创建一个新用户。您是否尝试在此处执行相同操作。应该有tweet id吗?你能发布一个有效的密码声明吗?@Olivierdemolder我没有任何有效的密码!你是说我应该在查询中添加我的twitter唯一ID?怎样?!我假设您有一个试图在NEO4J中输入的tweet列表。对于每条推文,您可能都有一个唯一的id,即作者和推文本身。NEO4J中的合并功能允许您更新现有节点或创建新节点。为了让它工作,你需要检查tweet的id。如您提供的链接中的示例所示。是这样吗?@OlivierdeMolder是的,情况是这样的,我有一个statusID,我认为它是tweet的唯一键,如果它还不存在,我想添加到我的db中。值得补充的是,如果你有很多tweet要浏览,你可能会发现这需要一些时间,在这种情况下,请查看Cypher中的
Foreach
语句,因为你可以在一次点击中添加它们。