ScriptEvalutionError : For Input string "" : When supplying a string as ID

ScriptEvalutionError : For Input string "" : When supplying a string as ID

我已经在我的开发机器上为 tinkerpop/gremlin-server 设置了一个 docker 容器。

我有一个使用 Gremlin.Net 版本 3.4.1

的 .NET Core 应用程序

我使用 IGremlinClient 连接到本地主机 docker,并在传递以下查询以添加顶点时:

g.addV("Root").property(id,"56b7ddc6-7629-42d4-b748-bfbce0992f13")

然后我得到错误:

ScriptEvaluationError: For input string: "56b7ddc6-7629-42d4-b748-bfbce0992f13"

当我 运行 使用 gremlin 控制台进行查询时,添加了顶点:

gremlin> g.addV("Root").property(id,"56b7ddc6-7629-42d4-b748-bfbce0992f13")
==>v[56b7ddc6-7629-42d4-b748-bfbce0992f13]

在我的应用程序中 运行通过 IGremlinClient 连接时,如何创建一个带有字符串作为 Id 的新顶点?

由于您使用的是默认的 Gremlin 服务器 Docker 容器,因此您正在为托管的 TinkerGraph 获取此 configuration

gremlin.graph=org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph
gremlin.tinkergraph.vertexIdManager=LONG

IdManager 设置为 LONG,因此它将只接受可以强制转换为 long 的输入值。您应该将该设置更改为 UUID,也许给定您正在发送的字符串,或者可能是 ANY。您可以阅读有关这些选项的更多信息 here

附带说明一下,我同意错误消息没有帮助。请注意,下一个版本 3.4.3/3.3.8 已 improved