2016-07-06 40 views
0

來自Sitecore Cookbook for Developers「從基於標記的構面改進搜索結果」小節中的以下示例。 但是,我使用Sitecore.FakeDB來編寫單元測試。 我想Getresults()Sitecore.FakeDB和Sitecore內容使用構面搜索

有上鍵入「Sitecore.ContentSearch.Linq.QueryableExtensions'指定的參數匹配都沒法「FacetOn」當得到這個錯誤。

這裏是代碼

SearchResults<ArticleSrch> results = null; 
     var query = searchContext.GetQueryable<ArticleSrch>() 
        .Where<ArticleSrch>(i =>(i.TemplateName!=null && i.TemplateName.ToString().Equals("Base Article"))) 
        ; 
     query = query.FacetOn(facet => facet.Tags); 
     results = query.GetResults(); 
     return results; 

任何人都可以幫助?

+0

ca你可以嘗試喜歡這個網頁:https://github.com/sergeyshushlyapin/Sitecore.FakeDb/wiki/Content-Search –

+0

是的。我確實使用了該部分的內容搜索技術。我的方法是兩者的結合,本書中的標記技術和Git wiki中的內容搜索。然而,真正的問題是IQueryable擴展的「FacetOn」功能。 – D0cNet

回答

0

所以環顧四周後,我找到了答案。 凱文Brechuhl的海龍,實際上做了類似的使用內容搜索與單元測試。

ContentSearchTest

所以基本上我是缺少一個模擬實現「FacetOn」,類似於GetResults()在行79.有趣的部分是使用LINQ模擬磨製,我只是做了作爲

public static IQueryable<TSource> FacetOn<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector) 
    { 
     return source.OrderBy(keySelector).AsQueryable(); 
    }