入门
关于官方 .NET 驱动程序
Neo4j 为多种流行的编程语言提供官方驱动程序。这些驱动程序受 Neo4j 支持。
许多语言也存在社区驱动程序,但其功能集、成熟度和支持程度差异很大。要了解更多关于社区驱动程序的信息,请访问 https://neo4j.ac.cn/developer/language-guides/。
以下语言和框架受 Neo4j 官方支持
语言/框架 | 支持版本 |
---|---|
.NET |
.NET Standard 2.0。 |
Go |
所有官方维护的 Go 版本。 |
Java |
Java 17。 |
JavaScript |
所有 Node.JS 的 LTS 版本。 |
Python |
Python 3.7 及以上。 |
驱动程序 API 旨在与拓扑无关。这意味着底层数据库拓扑(单实例、因果集群等)可以更改,而无需相应更改应用程序代码。
通常情况下,当拓扑发生变化时,只需修改连接 URI。
官方驱动程序不支持 HTTP 通信。如果您需要 HTTP 驱动程序,请选择其中一个社区驱动程序。 另请参阅 HTTP API 文档。 |
驱动程序版本和安装
在可能的情况下,建议使用最新的稳定驱动程序版本。这将提供最大程度的稳定性,并确保所有服务器功能均可用。驱动程序与 Neo4j Enterprise Edition 一起使用时,提供完整的集群路由支持。然而,驱动程序并没有明确区分 Enterprise Edition 和 Community Edition,它们只是利用 Neo4j 本身提供的功能进行操作。
.NET 驱动程序通过 NuGet Gallery 分发。要查找最新版本的驱动程序,请访问 https://nuget.net.cn/packages/Neo4j.Driver/。
依赖
-
.NETStandard (^2.0)
-
System.Net.NameResolution (^4.3.0)
-
System.Net.Security (^4.3.2)
-
System.Net.Sockets (^4.3.0)
-
System.Runtime.InteropServices.RuntimeInformation (^4.3.0)
-
System.Runtime.Serialization.Primitives (^4.3.0)
-
System.Threading.Thread (^4.3.0)
-
System.ValueTuple (^4.5.0)
.NET Reactive API 位于包 Neo4j.Driver.Reactive
中。它基于 System.Reactive
构建。使用 .NET Reactive API 不需要额外的依赖。
要在 Visual Studio 中使用 NuGet 安装最新版本的驱动程序
PM> Install-Package Neo4j.Driver
也可以选择安装特定版本的驱动程序。
PM> Install-Package Neo4j.Driver -Version $DOTNET_DRIVER_VERSION
.Net 驱动程序默认使用异步方法。如果您想使用阻塞调用,Neo4j.Driver.Simple
NuGet 包包含一组扩展。这可以在 https://nuget.net.cn/packages/Neo4j.Driver.Simple/ 找到。初始示例使用了这些扩展。
在以下示例中,我们将安装驱动程序版本 5.28。
PM> Install-Package Neo4j.Driver -Version 5.28
此驱动程序的发行说明可在此处查看:这里。
一个“Hello World”示例
以下示例展示了通过 .NET 驱动程序与 Neo4j 交互所需的最小配置
public class HelloWorldExample : IDisposable
{
private readonly IDriver _driver;
public HelloWorldExample(string uri, string user, string password)
{
_driver = GraphDatabase.Driver(uri, AuthTokens.Basic(user, password));
}
public void Dispose()
{
_driver?.Dispose();
}
public void PrintGreeting(string message)
{
using var session = _driver.Session();
var greeting = session.ExecuteWrite(
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>();
});
Console.WriteLine(greeting);
}
public static void Main()
{
using var greeter = new HelloWorldExample("bolt://:7687", "neo4j", "password");
greeter.PrintGreeting("hello, world");
}
}
驱动程序 API 文档
有关所有驱动程序功能的全面列表,请参阅 .NET API 参考文档。