C# 无法执行cypher语句

C# 无法执行cypher语句,c#,asp.net-mvc,neo4jclient,C#,Asp.net Mvc,Neo4jclient,我在MVC应用程序中使用VS2013和Neo4j客户端,无法通过构建查询 在下面的代码中,我可以连接到我的服务器,但在var newUser行中,我在newUser语句中得到一个错误,该语句表示它是一个属性,但与类型类似,可以在这个屏幕截图中看到: var client = new GraphClient(new System.Uri("http://localhost:7474/db/data")); client.Connect(); var newUser = new User { Id

我在MVC应用程序中使用VS2013和Neo4j客户端,无法通过构建查询

在下面的代码中,我可以连接到我的服务器,但在
var newUser
行中,我在
newUser
语句中得到一个错误,该语句表示它是一个属性,但与类型类似,可以在这个屏幕截图中看到:

var client = new GraphClient(new System.Uri("http://localhost:7474/db/data"));
client.Connect();

var newUser = new User { Id = 456, Name = "Jim" };
client.Cypher
    .Merge("(user:User { Id: {id} })")
    .OnCreate("user")
    .Set("user = {newUser}")
    .WithParams(new
    {
        id = newUser.Id,
        newUser
    })
    .ExecuteWithoutResults();


我想我需要添加或删除引用,但我不确定它是什么。

如果您阅读了错误,您将看到
用户
控制器的属性,因此它不能被识别为类型


您需要为名称空间添加前缀,如
new Neo4j.User()
或其文档中所述的任何名称。

啊,我发现我需要创建该用户类,所以我这样做了,并给了它一个不同的名称。@Baub现在我实际阅读了代码,您不必这样做。您可以删除
User
(因此
var newUser=new{Id=…}
),或者删除整个
var newUser
行(与您的类一起),只需在
.WithParams()
调用中输入值。我似乎找不到任何示例,也不知道如何使其工作,在这里,我可以以某种方式将查询结果存储到VS中的变量中进行测试。例如,我想看看是否有什么存在,并根据这个结果,做一些事情。显然我不能用。执行那些结果。似乎找不到一个合适的类引用,我找到的所有文档似乎都不够详细。@Baub这是相当具体的Neo4j,所以我恐怕帮不上忙。