2017-12-31 31 views
0

Ich versuche, alle meine Seitentypen von Kentico zu bekommen, aber ich möchte sie nach allen Seitentypen sortieren, die mit dem Buchstaben "F" beginnen, zuerst und dann die anderen Seiten alphabetisch.Wird versucht, mit der Klausel case when für MultiDocumentQuery orderby zu sortieren?

Was ich versuche, ist:

1) MultiDocumentQuery docQuery = DocumentHelper.GetDocuments().Type("forms").OnSite(SiteContext.CurrentSiteID).Published(); 2) docQuery.OrderBy("FormName");

Aber was ich brauche, ist em bestellen etwas wie folgt verwenden (SQL):

SELECT FormName FROM Forms order by case when FormName like 'C%' then 0 else 1 end, FormName

Was ich tun kann nicht zu übersetzen Sie die case when ordnungsgemäß in C# und implementieren Sie sie in docQuery. So das Ergebnis zum Beispiel ,:

  1. Form1
  2. Form2
  3. Form3
  4. A ...
  5. B ...

Antwort

2

sein sollte ich glaube, ich würde Sehen Sie sich die Fall Anweisung in den Spalten eher als die wo wie folgt aus:

CASE WHEN FormName LIKE 'F%' THEN 0 ELSE 1 END AS IsForm 

diese Weise können Sie eine neue Spalte namens IsForm haben kann und durch zur Herstellung eines Auftrag haben:

IsForm, FormName