0

一部のノードを返すために、Neo4j cypher クエリに where 句を挿入しようとしています。これは、実行しようとしているクエリです。

start n = node:node_auto_index(Name = "Contact Details") Match (n)--(x) Where x.Type = "Version" Return x;

これで、私の C# メソッドは次のようになります (Neo4jClient を使用):

public IEnumerable<Node<VersionNode>> GraphGetAllVersionNodes(string nodeName)
        {
            clientConnection = graphOperations.GraphGetConnection();

            IEnumerable<Node<VersionNode>> queryResult = null;

                var query = clientConnection
                    .Cypher
                    .Start(new
                    {
                        n = Node.ByIndexLookup("node_auto_index", "Name", nodeName)
                    })
                    .Match("(n)--(x)")
                    .Where((VersionNode x) => x.Type = "Version")
                    .Return<Node<VersionNode>>("(x)")
                    .Results;
                queryResult = query.ToList();

            return queryResult;
        }

where句に次のようなエラーがあります。

Cannot convert lambda expression to type 'string' because it is not a delegate type

ここで何が間違っていますか?

ありがとう

4

1 に答える 1

1

それが逐語的なコピペである場合、問題はあなたが書いたことだと思います:

.Where((VersionNode x) => x.Type = "Version")

あなたが書く必要があるとき:

.Where((VersionNode x) => x.Type == "Version")

PS。IEnumerable<Node<VersionNode>> queryResult = null;ただの代わりに何がポイントvar queryResult =ですか?他のパスに割り当てることは決してないため、コードの無駄と維持するための余分な署名になります。

于 2013-05-15T12:42:13.300 に答える