Ho alcuni dati provenienti da un DB che non posso modificare facilmente lo schema di. Voglio ordinarlo e associarlo a un controllo basato su un ID numerico. Il problema è che l'API memorizza il numero in un campo stringa anziché come int
e Linf barfs nel tentativo di conversione.Come ordinareIn un numero intero in un campo stringa in una query Linq
myControl.DataSource = dataFromDB.OrderBy(o => int.Parse(o.StringHoldingAnInt));
LINQ alle entità non riconosce il metodo 'Int32 Parse (System.String)' metodo, e questo metodo non può essere tradotto in un'espressione negozio.
Convert.ToInt32
non funziona.
LINQ to Entities non riconosce il metodo 'Int32 ToInt32 (System.String)', e questo metodo non può essere tradotto in un'espressione di archivio.
ordinamento come stringa non è adatto perché i valori non sono tutte la stessa lunghezza e otterrebbe ordinare simili: 1, 10, 11, 2, 3 ..
Quanti dati ci sono? Sarebbe possibile ordinare dal lato del cliente? – dlev
Si potrebbe provare a riempire la stringa con '0' in modo che abbiano tutti la stessa lunghezza ... ma non sono sicuro che String.PadLeft sia supportato da Linq. –
@dlev diverse centinaia di righe nel DB, solo poche decine di righe dopo la query Where() che ho omesso dalla mia domanda. –