0
我在RavenDB簡單指標:RavenDb Linq查詢更大和低比較
地圖:
from q in docs.Questions
from Tag in q.Tags
select new { Tag, Count = 1 }
減少
from result in results
group result by result.Tag into g
select new { Tag = g.Key, Count = g.Sum(x=>x.Count) }
,我有一些代碼來調用它:
var query = from item in session.Query<TagCount>("Questions/Tags") select item;
Console.WriteLine(query.Count());
foreach (var result in query)
{
Console.WriteLine("{0} - {1}", result.Tag, result.Count);
}
它產生的產量:
3
Games - 1
RavenDb - 2
Intro - 1
如預期的那樣。 但是,如果這個循環之後添加一些代碼:
var counted = from item in query
where item.Count > 0
select item;
Console.WriteLine(counted.Count());
輸出將是:
3
Games - 1
RavenDb - 2
Intro - 1
0
跆拳道?爲什麼計數是零?
但是,如果我在數比較有 '==',它的工作原理:
var counted = from item in query
where item.Count == 1
select item;
Console.WriteLine(counted.Count());
主要生產
3
Games - 1
RavenDb - 2
Intro - 1
2
怎麼回事?
如果你這樣做,你會得到什麼:var results = session.Query(「Questions/Tags」)。ToList(); var count = results.Count;'?? –
count是3;如果我改變計數的查詢來選擇'結果',而不是'查詢'它像預期的那樣工作。但爲什麼? – l0nley