Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在neo4jclient中调用存储过程?_C#_Neo4j_Cypher_Neo4jclient - Fatal编程技术网

C# 如何在neo4jclient中调用存储过程?

C# 如何在neo4jclient中调用存储过程?,c#,neo4j,cypher,neo4jclient,C#,Neo4j,Cypher,Neo4jclient,我想调用一个存储过程(请参见前面的问题:但是,我不太明白如何通过fluent查询接口实现这一点) 有人能帮忙吗 我的密码查询: MATCH(user:UserAccount)-[:HasPermission]->(permission:Permission) WITH user, collect(permission) as permissions CALL apoc.map.setKey( user, 'permissions', permissions ) YIELD value as

我想调用一个存储过程(请参见前面的问题:但是,我不太明白如何通过fluent查询接口实现这一点)

有人能帮忙吗

我的密码查询:

MATCH(user:UserAccount)-[:HasPermission]->(permission:Permission)
WITH user, collect(permission) as permissions
CALL apoc.map.setKey( user, 'permissions', permissions ) YIELD value as UserAccount
RETURN UserAccount
到目前为止,我的Neo4jClient代码:

 _graphClient
            .Cypher
            .Match("(user:UserAccount)-[:HasPermission]->(permission:Permission)")
            .With("user, collect(permission) as permissions")
            // I need to call the stored procedure here.
            .ReturnDistinct(
                (userAccount) =>
                                new
                                {
                                    UserAccount = userAccount.As<UserAccount>()
                                });
\u图形客户端
塞弗先生
.Match(“(用户:用户帐户)-[:HasPermission]->(权限:权限)”)
.With(“用户,收集(权限)作为权限”)
//我需要在这里调用存储过程。
.ReturnDistinct(
(用户帐户)=>
新的
{
UserAccount=UserAccount.As()
});

我将把
IRawGraphClient
版本放在下面,但是对于
1.1.0.39版本(今天刚刚发布),您可以使用
调用
直接生成

_graphClient.Cypher
    .Match("(user:UserAccount)-[:HasPermission]->(permission:Permission)")
    .With("user, collect(permission) as permissions")
    .Call("apoc.map.setKey(user, 'permissions', permissions)").Yield("value AS UserAccount")
    .ReturnDistinct(
        (userAccount) => new { UserAccount = userAccount.As<UserAccount>() });
然后用查询调用-这有点笨拙,但会是这样的:

var queryText = @"MATCH(user:UserAccount)-[:HasPermission]->(permission:Permission) 
WITH user, collect(permission) as permissions
CALL apoc.map.setKey( user, 'permissions', permissions ) YIELD value as UserAccount
RETURN UserAccount"

var cypherQuery = new CypherQuery(queryText, null, CypherResultMode.Projection);
var results = rgc.ExecuteGetCypherResults<UserAccount>(cypherQuery);
var queryText=@“匹配(用户:用户帐户)-[:HasPermission]->(权限:权限)
对于用户,将(权限)收集为权限
调用apoc.map.setKey(用户,'permissions',permissions)以UserAccount的形式生成值
返回用户帐户“
var cypherQuery=new cypherQuery(queryText,null,CypherResultMode.Projection);
var results=rgc.ExecuteGetCypherResults(cypherQuery);
我认为这会起作用-我目前没有一个3.0的设置来测试,所以不能100%确定,但请试试看


<>我想获得一个<代码>。调用<代码/> > />代码>屈服点< /p>方法。我不使用图形客户机,我把Cyper-QueYes发送到数据库要容易得多。而且它复杂,带有标签用户帐户和返回用户帐号,我自己也会考虑,但是我很喜欢NeN4JCube获得的序列化。虽然你有一个EX。足够了,然后调用存储过程,我很高兴看到它。我刚发送它,然后我填写一个类与我的结果。如果你想做一些特殊的,C.L.LIBS不好。我自己是C程序员。好的,所以你只是填写班的手动?你会考虑提供一个代码示例答案吗?如果是的话,我会打开一个新的问题。(虽然你给出的答案可以解决我的问题,但它可能不是对问题的直接回答,我希望你能为你的努力赢得荣誉)。我可以做到,但这需要一些时间。我不在乎荣誉。谢谢你回到克里斯身边。我不知道在哪里提出这个问题最好(此处或github)。我会尝试一下。我一直在避免使用IRawGraphClient,因为文档声明除非你真的需要,否则你不应该使用它,而且它可以在任何时候更改,但如果这是一个可接受的用例,那么我会尝试一下。耶,这是一个痛苦的过程,但在这种情况下,这是最好的方法,我会努力获得“呼叫”,并尽快在那里给出结果,这样你就可以去bac了k正确的方法!我做了一个帖子-这可能会有帮助:更新客户端,使其具有
呼叫
等方法Hanks Chris!这是一个非常快速的转变!非常感谢!
var queryText = @"MATCH(user:UserAccount)-[:HasPermission]->(permission:Permission) 
WITH user, collect(permission) as permissions
CALL apoc.map.setKey( user, 'permissions', permissions ) YIELD value as UserAccount
RETURN UserAccount"

var cypherQuery = new CypherQuery(queryText, null, CypherResultMode.Projection);
var results = rgc.ExecuteGetCypherResults<UserAccount>(cypherQuery);