2016-07-06 3 views
0

Следующий пример из раздела «Уточнение результатов поиска с помощью меток на основе фасетов» от Sitecore Cookbook for Developers. Тем не менее, я использую Sitecore.FakeDB для написания модульных тестов. я получаю эту ошибку при попытке Getresults()Поиск по сайту Sitecore.FakeDB и Sitecore с фасетками

Там нет методы «FacetOn» по типу «Sitecore.ContentSearch.Linq.QueryableExtensions', которая соответствует указанным аргументам.

Вот код

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. Однако реальная проблема заключалась в функциональности «FacetOn» расширения IQueryable. – D0cNet

ответ

0

Так осмотрев я нашел ответ. Кевин Брехюль из aquasonic, на самом деле сделал что-то подобное, используя Content Search с модульным тестированием.

ContentSearchTest

Поэтому в основном я пропускал Mock реализации «FacetOn», похожую на GetResults() в строке 79. Интересной части использует LINQ для имитации facetting, который я просто сделал, как

public static IQueryable<TSource> FacetOn<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector) 
    { 
     return source.OrderBy(keySelector).AsQueryable(); 
    } 
Смежные вопросы