在ASP.NET Core编程中建立与Neo4j DB的连接的普通方法是什么?
《 Neo4j语言指南》(https://neo4j.com/developer/language-guides/)中的代码对于简单的控制台应用程序可以很好地工作,但是它没有说明如何在ASP.NET中进行编码,因此我只是将代码复制并粘贴到MVC支架中:
public class TestController : Controller
{
public TestController()
{
_driver = GraphDatabase.Driver("bolt://localhost"));
}
private readonly IDriver _driver;
public string Index()
{
using (var session = _driver.Session())
{
var greeting = session.WriteTransaction(tx =>
{
var result = tx.Run("CREATE (a:Greeting) " +
"SET a.message = $message " +
"RETURN a.message + ', from node ' + id(a)",
new { message });
return result.Single()[0].As<string>();
});
return greeting;
}
}
}
工作正常,但为每个请求调用GraphDratabase.Driver()似乎没有道理。
应该不注册服务吗? (Startup.cs中的AddSingleton()吗?)
如果是,如何从Controller访问驱动程序?
答案 0 :(得分:0)
将其重新绑定到服务似乎是一个好主意。您可以这样做:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddSingleton(GraphDatabase.Driver("bolt://localhost"));
}
然后将其注入控制器:
public TestController(IDriver driver)
{
_driver = driver;
}