2016-07-06 29 views
0

Folgendes Beispiel aus Abschnitt "Verfeinern von Suchergebnissen durch Tagging-basierte Facetten" von Sitecore Cookbook for Developers. Allerdings verwende ich Sitecore.FakeDB, um Unit-Tests dagegen zu schreiben. ich diesen Fehler, wenn zu getResults()Sitecore.FakeDB und Sitecore Inhaltssuche mit Facetten

Es gibt keine Methode ‚FacetOn‘ auf Typ „Sitecore.ContentSearch.Linq.QueryableExtensions' versuchen, die die angegebenen Argumente übereinstimmt.

Hier die ist Code

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; 

Kann mir jemand helfen?

+0

ca versuchen Sie wie auf dieser Seite: https://github.com/sergeyshushlyapin/Sitecore.FakeDb/wiki/Content-Search –

+0

Ja. Ich habe diese Inhaltssuchtechnik aus diesem Abschnitt verwendet. Mein Ansatz war eine Mischung aus beiden, Tagging-Technik aus dem Buch und Inhaltssuche aus dem Git-Wiki. Das eigentliche Problem war jedoch die "FacetOn" -Funktion der IQueryable-Erweiterung. – D0cNet

Antwort

0

Also nach umsah, fand ich die Antwort. Kevin Brechuhl von aquasonic hat tatsächlich etwas Ähnliches mit Content Search mit Unit Testing gemacht.

ContentSearchTest

Also im Grunde war ich ein Mock Umsetzung von „FacetOn“, ähnlich wie GetResults fehlt() in Zeile 79. Der interessante Teil LINQ wurde mit Facettierung zu simulieren, die ich einfach als

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