3
我在尋找RacoonBlog的源代碼,試圖在RavenDB中查找包含在文檔中的集合的查詢方式。我確實閱讀過索引和Map/Reduce,但沒有找到我的答案。RavenDB linq查詢如何工作
在PostsController中有一個名爲Tag的ActionResult,它接受一個字符串參數幷包含以下linq查詢。
var posts = RavenSession.Query<Post>()
.Include(x => x.AuthorId)
.Statistics(out stats)
.WhereIsPublicPost()
.Where(post => post.TagsAsSlugs.Any(postTag => postTag == slug))
.OrderByDescending(post => post.PublishAt)
.Paging(CurrentPage, DefaultPage, PageSize)
.ToList();
Where擴展方法調用TagsAsSlugs並執行Any,TagsAsSlugs看起來像這樣。
public IEnumerable<string> TagsAsSlugs
{
get
{
if (Tags == null)
yield break;
foreach (var tag in Tags)
{
yield return SlugConverter.TitleToSlug(tag);
}
}
}
如此以來,TagsAsSlugs財產遍歷的標籤集合並查詢需要的所有帖子返回,使每個崗位都可以有標籤集合遍歷?
我懷疑這是因爲Oren's blog是如此之快的情況。