通过传递到一类的构造函数在宇宙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;
}