返回语句neo4jClient neo4j中的二进制表达式

时间:2013-12-19 23:58:26

标签: neo4j neo4jclient

我试图在GraphClient中写出以下Cypher查询:

START agency=node(12345)
MATCH agency
        -[:AGENCY_HAS_PEOPLE]-()
        -[:AGENCY_HAS_PERSON]-person
        ,person-[?:PERSON_IS_CARER]-carer
        ,person-[?:PERSON_IS_CLIENT]-client
WHERE (person.UniqueId! = 18989)   
RETURN person, carer is not null as IsCarer, client is not null as IsClient

查询在控制台中正常工作并返回我期望的结果:

person           IsCarer    IsClient
Node(1545421)    True       False

当我尝试使用Neo4jClient编写该查询时,它会抛出以下异常。

Expression of type System.Linq.Expressions.LogicalBinaryExpression is not supported.

这主要是由于return语句中的表达式:

.Start(...)
.Match(...)
.Where(...)
.Return((person, client, carer) => new
{
    Person = person.As<Person>(),
    IsClient = client != null
    IsCarer = carer != null
});

是否有人已经在为此制定解决方案? 它有解决方法吗? 有没有其他方法来编写此查询以获得相同的结果? 如果我要为此实现一个解决方案,那么在开始之前我是否应该知道与Neo4jClient内部相关的任何内容(限制,陷阱)?

谢谢..

1 个答案:

答案 0 :(得分:1)

这是https://github.com/Readify/Neo4jClient/blob/master/Neo4jClient/Cypher/CypherReturnExpressionBuilder.cs

中的错误
  1. 分叉项目
  2. 在本地克隆
  3. https://github.com/Readify/Neo4jClient/blob/master/Test/Cypher/CypherFluentQueryReturnTests.cs
  4. 中编写一个演示问题的失败测试
  5. 解决问题
  6. 提交并推送修复
  7. 打开拉取请求
  8. 当我对解决方案的质量感到满意时,我会接受并合并拉取请求。然后,修复程序将在几分钟内发布到NuGet。