我是neo4jclient的新手,我不知道如何在neo4jclient中返回自定义类型。 我有以下密码:
var result = client.Cypher
.Match("(u:User)-[:" + FriendRelation + "]->(friend:User)")
.Return((user, friend) => new RelationInDB(user.As<User>().id, friend.As<User>().id)).Results;
我想返回所有有朋友关系的id对,我想在自定义类中存储两个id - RelationInDB,但我不知道怎么写Return(我知道返回上面的错误) 有人可以帮忙吗?
答案 0 :(得分:0)
好的,有两件事你会发现导致你出现问题:
(user, friend) =>
,但您的匹配声明为(u:User)
。您的退货声明应为:(u, friend) =>
为此目的:
var results = client
.Cypher
.Match("(u:User)-[:" + FriendRelation + "]->(friend:User)")
.Return((u, friend) => new RelationInDB{UserId = u.As<User>().Id, FriendId = friend.As<User>().Id}).Results;
我的RelationInDB
课程定义为:
public class RelationInDB
{
public int FriendId { get; set; }
public int UserId { get; set; }
public RelationInDB() { }
}
如果您无法更改RelationInDB类,并且需要按原样使用它,则必须使用匿名类型进行返回:
var results = client
.Cypher
.Match("(u:User)-[:" + FriendRelation + "]->(friend:User)")
.Return((u, friend) => new {UserId = u.As<User>().Id, FriendId = friend.As<User>().Id}).Results;
然后用以下内容解析:
var relsInDb = results.Select(result => new RelationInDB(result.UserId, result.FriendId));