跳到内容

从 .NET 连接

Gremlin 遍历可以使用 Gremlin.Net 构建,就像在 Gremlin-Java 或 Gremlin-Groovy 中一样。有关 Gremlin 的介绍和进一步资源的指针,请参阅 Gremlin 查询语言。Gremlin.Net 的主要语法区别在于它遵循 .NET 命名约定,例如,方法名使用 PascalCase 而不是 camelCase。

JanusGraph 和 Gremlin.Net 入门

开始使用 Gremlin.Net

  1. 创建一个控制台应用程序

    dotnet new console -o GremlinExample
    

  2. 添加 Gremlin.Net

    dotnet add package Gremlin.Net -v 3.7.3
    

  3. 创建 GraphTraversalSource,它是所有 Gremlin 遍历的基础

    using static Gremlin.Net.Process.Traversal.AnonymousTraversalSource;
    
    var client = new GremlinClient(new GremlinServer("localhost", 8182));
    // The client should be disposed on shut down to release resources
    // and to close open connections with client.Dispose()
    var g = Traversal().WithRemote(new DriverRemoteConnection(client));
            // Reuse 'g' across the application
    

  4. 执行一个简单的遍历

    var herculesAge = g.V().Has("name", "hercules").Values<int>("age").Next();
    Console.WriteLine($"Hercules is {herculesAge} years old.");
    
    遍历也可以使用 Promise() 异步执行,这是推荐的方式,因为 Gremlin.Net 中的底层驱动程序也是异步工作的
    var herculesAge = await g.V().Has("name", "hercules").Values<int>("age").Promise(t => t.Next());
    

用于 JanusGraph 特定类型和谓词的 JanusGraph.Net

JanusGraph 包含一些不属于 Apache TinkerPop 的类型和谓词,因此 Gremlin.Net 也不支持这些类型和谓词。JanusGraph.Net 是一个 .NET 库,它为 Gremlin.Net 添加了对这些类型和谓词的支持。

安装库后,需要为 JanusGraph 配置一个消息序列化器,对于 GraphSON 3,可以这样配置

var client = new GremlinClient(new GremlinServer("localhost", 8182),
    new JanusGraphGraphSONMessageSerializer());

或者对于 GraphBinary,可以这样配置

var client = new GremlinClient(new GremlinServer("localhost", 8182),
    new GraphBinaryMessageSerializer(JanusGraphTypeSerializerRegistry.Instance));

有关该库的更多信息,包括其与不同 JanusGraph 版本的兼容性以及不同序列化格式之间的支持差异,请参阅JanusGraph.Net 的文档