入门

关于官方 .NET 驱动程序

Neo4j 为多种流行的编程语言提供官方驱动程序。这些驱动程序受 Neo4j 支持。

许多语言也存在社区驱动程序,但其功能集、成熟度和支持程度差异很大。要了解更多关于社区驱动程序的信息,请访问 https://neo4j.ac.cn/developer/language-guides/

以下语言和框架受 Neo4j 官方支持

表 1. 5.x 驱动程序系列支持的语言和框架
语言/框架 支持版本

.NET

.NET Standard 2.0。

Go

Java

Java 17。

JavaScript

Python

Python 3.7 及以上。

驱动程序 API 旨在与拓扑无关。这意味着底层数据库拓扑(单实例、因果集群等)可以更改,而无需相应更改应用程序代码。

通常情况下,当拓扑发生变化时,只需修改连接 URI

官方驱动程序不支持 HTTP 通信。如果您需要 HTTP 驱动程序,请选择其中一个社区驱动程序。

另请参阅 HTTP API 文档

驱动程序版本和安装

在可能的情况下,建议使用最新的稳定驱动程序版本。这将提供最大程度的稳定性,并确保所有服务器功能均可用。驱动程序与 Neo4j Enterprise Edition 一起使用时,提供完整的集群路由支持。然而,驱动程序并没有明确区分 Enterprise EditionCommunity Edition,它们只是利用 Neo4j 本身提供的功能进行操作。

示例 2. 获取驱动程序

.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 不需要额外的依赖。

示例 1. 通过 Install-package 安装

要在 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 交互所需的最小配置

示例 3. Hello World
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 参考文档

© . All rights reserved.