Dateによって結果を並べ替えるのが難しいです。特別な方法はありますか? 私は今、この権利をやっているので:日付が日時フィールドでASP.NET MVC - Model.OrderBy日付は無効です
var db = new DB();
var articles = db.Articles;
var orderedArticles = articles.OrderBy(a => a.Date);
return View(orderedArticles.ToList());
を。 そしてだから私は何が起こっているかをチェックするために管理のOrderBy(..)またはOrderByDescending(..)
ため影響はありません。 :
var orderedArticles = db.Articles.OrderByDescending(a => a.Date).ToList();
私は
を持つことになり、私はちょうど私が両方例えば同じ日のための2つの記事を持っている場合はそう ない時間に日付を使用している新しい記事を追加毎回
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
これは、日付でフィルタリングされていることがわかりますが、同じ日付のときにソートがフォーカスを失います。 だから私は日によって同上以降順序によって一次のようなものである、[並べ替え二つの異なるコンテキストやった:
var orderedArticles = db.Articles.OrderByDescending(a => a.Id).OrderByDescending(a => a.Date).ToList();
だから、この後、私は次のようにあります
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
を私は本当に知りません主な問題は、16/09/2009のような日付フィールドを送信すると時刻が00:00に設定され、これがこの状況に問題であるためです。
申し訳ありません - 私は持っていませんでした日付が日時フィールドであると仮定して、日付のソートに関する問題。たぶん、あなたのデータベースのタイプ/バージョンに関してより具体的になるかもしれませんか? –
OrderByを移動してみてください。 Do:ビュー(articles.ToList()。OrderBy(a => a.Date))を返します。あなたがしていることは正しく見えますが、これはデータベースを方程式から取り除き、Linqをオブジェクトの並べ替えに使用するだけです。これが機能するなら、並べ替えはlinqクエリで起こっていません。 – anonymous