2017-03-27 21 views
0

C#neo4jクライアントでWITH句を使用して結果を取得しようとしています。
私はneo4jを初めて使っているので、C#で結果を得る方法については何も考えていません。
Neo4jClientストレート訳でご提案Neo4j- C#クライアントのcypherを使用してWITH句を使用する方法

MATCH (cs:CrawlerInfo) 
WITH cs, SIZE((cs)-[:CONTAINS]->()) as TotalResult 
RETURN 
cs.CrawlerName,cs.Keyword,cs.SearchType,toint(TotalResult),cs.CrawlerInfoDate 
order by toint(cs.CrawlerId) desc 
+0

gc.Cypher .Match("(cs:CrawlerInfo)") .With("cs, SIZE((cs)-[:CONTAINS]->()) as TotalResult") .Return((cs, TotalResult) => new { CrawlerInfo = cs.As<CrawlerInfo>(), Size = Return.As<int>("TotalResult") }) .OrderByDescending("cs.CrawlerId"); 

CrawlerInfoは以下のように定義されている場合Neo4jClientまたはNeo4j-Driverを使用していますか? –

答えて

1

で私を助けてくださいが重要です、そしてAPIを経由して見つけなければなりません。個人的に

//gc = GraphClient instance 
//CrawlerInfo is a class 
gc.Cypher 
    .Match("(cs:CrawlerInfo)") 
    .With("cs, SIZE((cs)-[:CONTAINS]->()) as TotalResult") 
    .Return((cs, TotalResult) => new 
    { 
     CrawlerName = cs.As<CrawlerInfo>().CrawlerName, 
     Keyword = cs.As<CrawlerInfo>().Keyword, 
     SearchType = cs.As<CrawlerInfo>().SearchType, 
     CrawlerInfoDate = cs.As<CrawlerInfo>().CrawlerInfoDate, 
     Size = Return.As<int>("toint(TotalResult)") 
    }) 
    .OrderByDescending("toint(cs.CrawlerId)"); 

、私は同じように私CrawlerInfoクラスを見て何かをするだろう:

public class CrawlerInfo 
{ 
    public int CrawlerId { get; set;} 
    public string CrawlerName { get; set; } 
    public string Keyword { get; set; } 
    public string SearchType { get; set; } 
    public string CrawlerInfoDate { get; set;} 
} 

その後、あなたはまた、/(!いけない)あなたが行うことができることを意味、tointをする必要はありません:

gc.Cypher 
    .Match("(cs:CrawlerInfo)") 
    .With("cs, SIZE((cs)-[:CONTAINS]->()) as TotalResult") 
    .Return((cs, TotalResult) => new 
    { 
     CrawlerName = cs.As<CrawlerInfo>().CrawlerName, 
     Keyword = cs.As<CrawlerInfo>().Keyword, 
     SearchType = cs.As<CrawlerInfo>().SearchType, 
     CrawlerInfoDate = cs.As<CrawlerInfo>().CrawlerInfoDate, 
     Size = Return.As<int>("TotalResult") 
    }) 
    .OrderByDescending("cs.CrawlerId"); 

これは少しぎっしりです。私も(CrawlerInfoが大規模である場合や小さなCrawlerInfoLiteモデルを作る)だけではなくプロパティよりも、CrawlerInfoオブジェクト自体を返すように誘惑されるだろう:

public class CrawlerInfo 
{ 
    public int CrawlerId { get; set;} 
    public string CrawlerName { get; set; } 
    public string Keyword { get; set; } 
    public string SearchType { get; set; } 
    public string CrawlerInfoDate { get; set;} 
} 
+1

working great :) –

関連する問題