【发布时间】:2021-06-24 14:06:35
【问题描述】:
我使用 Neo4J .NET 驱动程序从 Neo4J 数据库中获取一些数据。我需要在using 块中创建一个会话,但是,如果我正在处理特定版本的数据库,我还需要将一个参数传递给using 块中的方法。这是没有参数的代码:
using (var conn = GraphDatabase.Driver(connectionString, AuthTokens.Basic(user, pass)).Session())
{
// ...some logic...
}
还有参数:
using (var conn = GraphDatabase.Driver(connectionString, AuthTokens.Basic(user, pass)).Session(SessionConfigBuilder.ForDatabase(db)))
{
// ...some logic...
}
我需要根据作为参数传递的版本在方法中调用提到的using 块之一。我想知道如何解决这个问题?创建一个返回会话的自定义对象,将逻辑放在私有方法中并创建两个 ifs,其中每个 using 中的一个?
【问题讨论】:
-
我并没有真正使用neo4j,但是基于the source,你可以只做
var action = specificVersion ? SessionConfigBuilder.ForDatabase(db) : null;,然后你可以将action传递给.Session()。 -
不管怎样,我在您的代码中没有看到任何 构造函数。