Sitecore.FakeDB и поиск контента Sitecore с фасетами

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

Нет метода 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;

Кто-нибудь может помочь?


person D0cNet    schedule 06.07.2016    source источник
comment
мож попробуй как на этой странице: github.com/sergeyshushlyapin/Sitecore.FakeDb/ вики/   -  person Vlad Iobagiu    schedule 07.07.2016
comment
Да. Я использовал метод поиска контента из этого раздела. Мой подход представлял собой смесь техники тегирования из книги и поиска контента из Git wiki. Однако реальная проблема заключалась в функциональности FacetOn расширения IQueryable.   -  person D0cNet    schedule 09.07.2016


Ответы (1)


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

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();
    }
person D0cNet    schedule 09.07.2016