如何在Neo4jClient中左键加入,

如何在Neo4jClient中左键加入,,neo4j,left-join,neo4jclient,Neo4j,Left Join,Neo4jclient,我有以下在neo4j中运行良好的查询 MATCH (p:Product) OPTIONAL MATCH (p)-[r2:SCP_HAS_SCMVSV]-(pv:ProductSCMVSValue) OPTIONAL MATCH (pv)-[r3:SCMVS_IN_SCPS]-(ps:ProductStorage) OPTIONAL MATCH (pv)-[r5:SCP_HAS_SCPP]-(pp:ProductPrice) return p,r2 is null,pv,pp,ps 当我将查询转

我有以下在neo4j中运行良好的查询

MATCH (p:Product)
OPTIONAL MATCH
(p)-[r2:SCP_HAS_SCMVSV]-(pv:ProductSCMVSValue)
OPTIONAL MATCH
(pv)-[r3:SCMVS_IN_SCPS]-(ps:ProductStorage)
OPTIONAL MATCH
(pv)-[r5:SCP_HAS_SCPP]-(pp:ProductPrice)
return p,r2 is null,pv,pp,ps
当我将查询转换为neo4jclient时,它是这样的:

var retxx = client.Cypher
             .Match("(sc:ProductSpecCategory)-[r:SCMVS_IN_SC]-(p:Product)").
             OptionalMatch("(p)-[r2:SCP_HAS_SCMVSV]-(pv:ProductSCMVSValue)").
             OptionalMatch("(pv)-[r3:SCMVS_IN_SCPS]-(ps:ProductStorage)").
             OptionalMatch("(pv)-[r5:SCP_HAS_SCPP]-(pp:ProductPrice)")
              .Where("sc.Id = {param2}").WithParam("param2", scId)
         .ReturnDistinct((p, pp, pv) => new
         {
             CurrentValues = pv.CollectAs<ProductSCMultiValueSpecValue>(),
             CurrentPrice = pp.CollectAs<ProductPrice>(),
             CurrentProduct = p.As<Product>(),
         }).Results.ToList();
var retxx=client.Cypher
.Match(“(sc:ProductSpecCategory)-[r:SCMVS\U IN\U sc]-(p:Product)”)。
OptionalMatch(“(p)-[r2:SCP\U HAS\U SCMVSV]-(pv:ProductSCMVSValue)”)。
OptionalMatch(“(pv)-[r3:SCMVS\U IN\U SCPS]-(ps:ProductStorage)”)。
OptionalMatch(“(pv)-[r5:SCP\U HAS\U SCPP]-(pp:ProductPrice)”)
.Where(“sc.Id={param2}”).WithParam(“param2”,scId)
.ReturnDistinct((p、pp、pv)=>新
{
CurrentValues=pv.CollectAs(),
CurrentPrice=pp.CollectAs(),
CurrentProduct=p.As(),
}).Results.ToList();

我如何将(r2为null)放入.ReturnDistinct((p,pp,pv)或它的方式错误?

要获取
r2为null
位,应使用
返回。As
方法:

.ReturnDistinct((p, pp, pv) => new
{
    CurrentValues = pv.CollectAs<ProductSCMultiValueSpecValue>(),
    CurrentPrice = pp.CollectAs<ProductPrice>(),
    CurrentProduct = p.As<Product>(),
    R2IsNull = Return.As<bool>("r2 IS NULL")
})
.ReturnDistinct((p,pp,pv)=>新建
{
CurrentValues=pv.CollectAs(),
CurrentPrice=pp.CollectAs(),
CurrentProduct=p.As(),
R2IsNull=Return.As(“r2为NULL”)
})

要获取
r2为空
位,您应该使用
返回。As
方法:

.ReturnDistinct((p, pp, pv) => new
{
    CurrentValues = pv.CollectAs<ProductSCMultiValueSpecValue>(),
    CurrentPrice = pp.CollectAs<ProductPrice>(),
    CurrentProduct = p.As<Product>(),
    R2IsNull = Return.As<bool>("r2 IS NULL")
})
.ReturnDistinct((p,pp,pv)=>新建
{
CurrentValues=pv.CollectAs(),
CurrentPrice=pp.CollectAs(),
CurrentProduct=p.As(),
R2IsNull=Return.As(“r2为NULL”)
})