2017-10-31 6 views
1

Ich versuche, so die folgenden:ServiceStack ormLite chaning SortiertNach

var routines = con.Select<Table>(con.From<Table>().OrderBy(p => p.Field1).ThenBy(i => i.Field2)); 

Die oben funktioniert perfekt. Aber ich möchte einen eher generischen Ansatz und analysiere einen String wie sort = "field1, field2". Ich habe folgenden Code:

int sortFieldCount = 0; 
var itemsq = con.From<Table>(); 
foreach (var name in orderByField.Split(',')) { 
if(sortFieldCount == 0) 
    itemsq = sortOrderAscending ? itemsq.OrderBy(name) : itemsq.OrderByDescending(name); 
else 
    itemsq = sortOrderAscending ? itemsq.ThenBy(name) : itemsq.ThenByDescending(name); 
sortFieldCount++; 
} 

Aber der obige Code scheint die erste OrderBy zu überschreiben. Gibt es eine Lösung für ein solches Problem?

Dank

Antwort

2

Andere Möglichkeiten, wie Sie mehrere Sortierung nach der mit ServiceStack.OrmLite umfassen ausführen können:

var orderByAnonType = db.Select(db.From<Track>().OrderBy(x => new { x.Album, x.Name })); 

var orderByString = db.Select(db.From<Track>().OrderBy("Album,Name")); 

var orderByArray = db.Select(db.From<Track>().OrderBy(x => new[]{ "Album","Name" })); 

hier ein live example of this Sie mit auf gistlyn.com rumspielen kann

Verwandte Themen