Neo4j和参数化查询

时间:2017-06-06 10:33:57

标签: c# neo4j cypher neo4jclient

我正在考虑将Neo4j用于项目,但在最佳实践方面我有点困惑。我通常会假设官方C#驱动程序提供了一种参数化查询的方法,但我无法在official documentation中看到任何内容。

对于位于on Github的C#,似乎有一个非官方的库,最近发布的版本只有几天,支持参数化查询。但是,我还记得看过一条评论,说它主要支持2.x版(虽然我找不到页面说明这一点)。该库仅支持http + https作为连接方法,不支持Bolt。这会对性能产生什么影响?

使用C#的Neo4j 3.x的首选驱动程序/库是什么?

1 个答案:

答案 0 :(得分:1)

Neo4jClient(社区驱动程序)在其当前状态下不支持Bolt,有一个beta预发布版本(您可以通过添加https://www.myget.org/F/cskardon/api/v3/index.json作为Nuget的源来使用Nuget) - 我' m 合理对它充满信心,但确实需要测试。

支持Bolt。

官方驱动程序确实支持您必须自己编码的参数化查询,当您调用session.Run时,将其作为第二个参数传递。

类似的东西:

var obj = new Dictionary<string, object> { {"Name", "Chris"}, {"Email", "a@a.com"} }

var paramsObj = new Dictionary<string, object> { { "userParam", obj } };

session.Run("CREATE (n:User {userParam})", paramsObj);

官方驱动程序由Neo4j支持,社区使用引擎盖下的官方驱动程序来封装OGM的东西,所以从博尔特的角度来看,你的选择是你的。如果您需要使用HTTP / HTTPS - 您必须使用Neo4jClient(也可以使用3.x DB)

相关问题