从 .NET 使用 Neo4j

如果您是 .NET 开发人员,本指南将概述连接到 Neo4j 的选项。虽然本指南并非面面俱到,但它将介绍不同的驱动程序并链接到相关资源。
先决条件
您应该熟悉 图数据库概念 和属性图模型。您应该已经 创建了 Neo4j AuraDB 云实例,或者 在本地安装了 Neo4j

适用于 .NET 开发人员的 Neo4j

Neo4j 提供驱动程序,允许您建立到数据库的连接并开发创建、读取、更新和删除图中信息的应用程序。

Neo4j .Net 驱动程序

Neo4j .NET 驱动程序由 Neo4j **正式支持**,并使用二进制协议连接到数据库。它旨在保持最小化,同时保持 .NET 的习惯用法。

PM> Install-Package Neo4j.Driver-5.22.0
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 async Task PrintGreetingAsync(string message)
    {
        await using var session = _driver.AsyncSession();
        var greeting = await session.ExecuteWriteAsync(
            async tx =>
            {
                var result = await tx.RunAsync(
                    "CREATE (a:Greeting) " +
                    "SET a.message = $message " +
                    "RETURN a.message + ', from node ' + id(a)",
                    new { message });

                var record = await result.SingleAsync();
                return record[0].As<string>();
            });

        Console.WriteLine(greeting);
    }

    public void Dispose()
    {
        _driver?.Dispose();
    }
}

驱动程序配置

从 Neo4j 版本 **4.0** 开始,默认加密设置默认情况下为 **关闭**,Neo4j 将不再生成自签名证书。这适用于默认安装、通过 Neo4j 桌面和 Docker 镜像的安装。您可以 通过检查neo4j.conf中的dbms.connector.bolt.enabled键来验证服务器的加密级别

表 1. 表格模式用法
证书类型 Neo4j 集群 Neo4j 独立服务器 直接连接到集群成员

未加密

neo4j

neo4j

bolt

使用完整证书加密

neo4j+s

neo4j+s

bolt+s

使用自签名证书加密

neo4j+ssc

neo4j+ssc

bolt+ssc

Neo4j AuraDB

neo4j+s

N/A

N/A

在投入生产时查看您的 SSL 框架设置。如有必要,您也可以 使用 Letsencrypt 为 Neo4j 生成证书

名称

版本

作者

Neo4j .Net 驱动程序

5.22.0

Neo4j 团队、Charlotte SkardonMartin Jensen

NuGet 包

.NET 示例 .NET core 示例

Neo4j 在线社区

文档

API

源代码

示例项目

Neo4j 示例项目是一个小型单页面 Web 应用程序,用于 Neo4j 教程中内置的电影数据库。前端页面对所有驱动程序都相同:电影搜索、电影详细信息以及演员和电影的图可视化。每个后端实现都向您展示了如何从不同的语言和驱动程序连接到 Neo4j。

您可以 在这里了解有关我们跨多种语言驱动程序的小型一致示例项目的更多信息。您将发现所有驱动程序的实现都作为 单独的 GitHub 存储库,您可以直接克隆和部署它们。