Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 在ASP.NET Core 2.1中,Neo4j驱动程序实例放在何处?_Asp.net Core_Neo4j_Asp.net Core Mvc_Asp.net Core Mvc 2.1 - Fatal编程技术网

Asp.net core 在ASP.NET Core 2.1中,Neo4j驱动程序实例放在何处?

Asp.net core 在ASP.NET Core 2.1中,Neo4j驱动程序实例放在何处?,asp.net-core,neo4j,asp.net-core-mvc,asp.net-core-mvc-2.1,Asp.net Core,Neo4j,Asp.net Core Mvc,Asp.net Core Mvc 2.1,在ASP.NET核心编程中,与Neo4j DB建立连接的一般方法是什么 Neo4j语言指南()中的代码适用于简单的控制台应用程序,但它没有解释如何在ASP.NET中编码,因此我只是将代码复制并粘贴到MVC scaffold: public class TestController : Controller { public TestController() { _driver = GraphDatabase.Driver("bolt://localhost")

在ASP.NET核心编程中,与Neo4j DB建立连接的一般方法是什么

Neo4j语言指南()中的代码适用于简单的控制台应用程序,但它没有解释如何在ASP.NET中编码,因此我只是将代码复制并粘贴到MVC scaffold:

  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;
      }
    }
  }
公共类TestController:Controller
{
公共测试控制器()
{
_驱动程序=图形数据库。驱动程序(“bolt://localhost"));
}
专用只读IDriver\u驱动程序;
公共字符串索引()
{
使用(var会话=_driver.session())
{
var greeting=session.WriteTransaction(tx=>
{
var result=tx.Run(“创建(a:问候语)”+
“设置a.message=$message”+
“从节点“+id(a)”返回a.message+”,
新的{消息});
返回result.Single()[0].As();
});
回敬问候;
}
}
}
工作正常,但为每个请求调用GraphDratabase.Driver()似乎没有意义

它不应该注册到服务吗? (Startup.cs中的AddSingleton())


如果是,如何从控制器访问驱动程序?

将其限制在服务中似乎是个好主意。你可以这样做:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();

        services.AddSingleton(GraphDatabase.Driver("bolt://localhost"));
    }
然后将其注入控制器:

public TestController(IDriver driver)
{
  _driver = driver;
}