Ho qualche difficoltà a ordinare i risultati per Data. C'è qualche metodo speciale? perché sto facendo questo adesso:ASP.NET MVC - Model.OrderBy La data non ha effetto
var db = new DB();
var articles = db.Articles;
var orderedArticles = articles.OrderBy(a => a.Date);
return View(orderedArticles.ToList());
Dove Date è un campo datetime. E non v'è alcun effetto per OrderBy (..) o OrderByDescending (..)
così sono riuscito a controllare cosa sta succedendo.
Ogni volta che aggiungere un nuovo articolo che sto usando solo la data in non il tempo in modo se ho due articoli sia per lo stesso giorno, per esempio: con:
var orderedArticles = db.Articles.OrderByDescending(a => a.Date).ToList();
mi avrebbe
Id Title Date
10 First Added Article 16/09/2009 00:00
11 Second Added Article 16/09/2009 00:00
15 Old Article Added Later 15/09/2009 00:00
Quindi è possibile vedere che si sta filtrando per data, ma il fatto è che quando ho la stessa data l'ordinamento perde lo stato attivo. Quindi quello che ho fatto è, orderBy due contesti diversi, come primo ordine da Id e l'ordine in seguito per data:
var orderedArticles = db.Articles.OrderByDescending(a => a.Id).OrderByDescending(a => a.Date).ToList();
Così, dopo questo ho il seguente:
Id Title Date
11 Second Added Article 16/09/2009 00:00
10 First Added Article 16/09/2009 00:00
15 Old Article Added Later 15/09/2009 00:00
io davvero non lo so se questo è il modo giusto per farlo perché il problema principale è che quando si invia un campo data come 16/09/2009 imposta l'ora alle 00:00 e questo è un problema in questa situazione.
Spiacente - non ho avuto problemi con le date di ordinamento, assumendo che Date è un campo datetime. Forse potresti essere più specifico riguardo al tipo/versione del tuo database? –
prova a spostare l'OrderBy. Do: return View (articles.ToList(). OrderBy (a => a.Date)); Quello che stai facendo sembra giusto, ma questo eliminerà il database dall'equazione e userà semplicemente l'ordinamento di Linq to Objects. Se funziona, l'ordinamento non sta accadendo nella query linq. – anonymous