从 .NET 连接
Gremlin 遍历可以使用 Gremlin.Net 构建,就像在 Gremlin-Java 或 Gremlin-Groovy 中一样。有关 Gremlin 的介绍和进一步资源的指针,请参阅 Gremlin 查询语言。Gremlin.Net 的主要语法区别在于它遵循 .NET 命名约定,例如,方法名使用 PascalCase 而不是 camelCase。
JanusGraph 和 Gremlin.Net 入门
开始使用 Gremlin.Net
-
创建一个控制台应用程序
dotnet new console -o GremlinExample -
添加 Gremlin.Net
dotnet add package Gremlin.Net -v 3.7.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 -
执行一个简单的遍历
遍历也可以使用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 的文档。