首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能隐式地将“Neo4jClient.NodeReference<>”转换为“Neo4jClient.GraphClient”

不能隐式地将“Neo4jClient.NodeReference<>”转换为“Neo4jClient.GraphClient”
EN

Stack Overflow用户
提问于 2013-03-20 11:13:21
回答 1查看 449关注 0票数 0

这是一个分为两个部分的问题。

  1. 当我尝试创建一个新节点时,我会得到这个错误。 不能隐式转换类型‘Neo4jClient.NodeReference’为'Neo4jClient.GraphClient‘

这里有3个类,第一个类连接到GraphDB服务器并返回客户机变量,以便以后在其他类中使用。

代码语言:javascript
复制
public GraphClient GetConnection()
        {
            var client = new GraphClient(new Uri("http://localhost:7474/db/data"));
            client.Connect();
            return client;
        }

然后是如下所示的New_Node类

代码语言:javascript
复制
 class New_Node
    {
        public GraphClient Node { get; set; }
    }

然后是图操作类,它具有CreateNode方法

代码语言:javascript
复制
public GraphClient CreateNode()
{
    Graph_Connection connection = new Graph_Connection();
    var NewNode = connection.GetConnection();
    var Created_Node = NewNode.Create(new New_Node());
    return Created_Node;
}
  1. 如何在另一行代码上设置node的属性,而不是用节点创建它们,我希望使我的应用程序更加动态,因为这种方式看起来很难编码。 var refA = client.Create(new Person() { Name = "Person A“});

在Java中,可以做到这一点。

代码语言:javascript
复制
Node user1 = this.graphDb.createNode(); 
user1.setProperty("name", "Mike");
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-21 00:53:43

问题在于,您试图将DB连接持久化到节点本身内。

以下是节点数据结构的定义

代码语言:javascript
复制
class New_Node
{
    public GraphClient Node { get; set; }
}

这意味着您需要一个名为" node“的节点上的属性,该属性保存到包含该节点的DB的连接。舌头扭曲了吗?我的是。

根据您的Java比较,我认为您希望您的节点看起来像这样:

代码语言:javascript
复制
class New_Node
{
    public string Name { get; set; }
}

这表示您需要一个具有Name属性的节点,该属性是一个字符串。

然后,您可以这样创建它:

代码语言:javascript
复制
graphClient.Create(new New_Node { Name = "Mike" });

关于您的子问题,“1.如何在另一行代码上设置Node的属性,而不是使用节点创建它们”,当您调用graphClient.Create时,我们将它持久化到DB。以后的任何属性更改都是对DB的更新,以及更多的调用。

当您的节点准备好被持久化时,只需调用create。

代码语言:javascript
复制
var node = new New_Node();
... think ...
node.Name = "Mike";
... think ...
graphClient.Create(node);

基本上,每次您调用graphClient.Something时,我们都会访问DB。这是因为我们正在讨论一个无状态API。这与Java驱动程序不同,后者在内存中与DB对话(假设您谈论的是嵌入式Neo4j实例)。

HTH。

-塔瑟姆

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15521930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档