通过传递到一类的构造函数在宇宙DB

问题描述:

我与宇宙数据库查询的结果正与graphson结果工作:通过传递到一类的构造函数在宇宙DB

public Session GetASession() 
{ 
    IDocumentQuery<dynamic> query = database.Client.CreateGremlinQuery<dynamic>(database.Graph, $"g.V()"); 
    var session = new Data(query.ExecuteNextAsync().Result.FirstOrDefault()); 
    return session; 
} 

哪个Session类实现的喜欢以下内容:

public Class Session 
{ 
    dynamic graphson; 
    public Session(dynamic graphson) 
    { 
     this.graphson = graphson; 
    } 
    public string Id 
    { 
     get 
     { 
      return (string)graphson.id; 
     } 
     set 
     { 
      graphson.id = value; 
     } 
    } 
} 

问题是当调用GetASession函数时,尽管查询从db获得了一些会话,但Id在返回的会话中不可用并且以这种方式得到错误。因此,问题在哪里?

由于我发现从查询返回的对象是弱引用对象,所以如果我们不将它分配给一个变量,它将被丢弃。因此,解决方案是:

public Session GetASession() 
{ 
    IDocumentQuery<dynamic> query = database.Client.CreateGremlinQuery<dynamic>(database.Graph, $"g.V()"); 
    var result = query.ExecuteNextAsync().Result.FirstOrDefault(); 
    var session = new Data(result); // this solves the problem 
    return session; 
}