2011-12-13 49 views
2

我有一個實體郵政包含一個兒童收集IList。現在我需要爲所有帖子獲得10條最後評論。這是我最初的impelementation:RavenDb選擇最後的評論

_documentSession.Query<Post>().SelectMany(x => x.Comments).OrderByDescending(x => x.DateTime).Take(10).ToList(); 

但它不工作作爲RavenDb拋出異常「不支持的SelectMany」。

使用RavenDb來推進它的正確方法是什麼?

+0

你介意在這裏發佈你的索引嗎?我已經能夠使用Raven,而不使用索引,所以我想看看你是如何解決這個問題的。 –

+0

@BobHorn,我的索引與Thomas Freudenberg提供的索引非常相似 – SiberianGuy

+0

這些鏈接被破壞。我會做一些挖掘... –

回答

3

您需要一個索引來完成該操作。 RacoonBlog解決了同樣的問題,請參閱index definition

+0

索引是唯一的方法嗎?我可以通過簡單地使用Where(),OrderByDescending()和Take()來完成此操作。只要你使用IQueryable方法,而不是IEnumerable,那應該可以。我在這裏解決了這個問題:http://stackoverflow.com/questions/8931289/ravendb-orderbydescending-and-take-incorrect-results。 –

+0

@Bob評論列表是「Post」文檔的屬性,因此您需要一個索引來將它們拼合。 –