Tôi đang gặp một số khó khăn để sắp xếp kết quả của mình theo Ngày. Có phương pháp đặc biệt nào không? Vì tôi đang làm việc này ngay bây giờ:ASP.NET MVC - Model.OrderBy Ngày không có hiệu lực
var db = new DB();
var articles = db.Articles;
var orderedArticles = articles.OrderBy(a => a.Date);
return View(orderedArticles.ToList());
Trường hợp ngày là trường ngày giờ. Và không có hiệu lực đối với OrderBy (..) hoặc OrderByDescending (..)
Vì vậy, tôi quản lý để kiểm tra những gì đang xảy ra.
Mỗi lần tôi thêm một Điều mới Tôi chỉ sử dụng ngày trên không phải là thời gian để nếu tôi có hai bài báo cả cho cùng một ngày, ví dụ: với:
var orderedArticles = db.Articles.OrderByDescending(a => a.Date).ToList();
tôi sẽ phải
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
Vì vậy, bạn có thể thấy rằng đó là lọc theo ngày, nhưng điều này là khi tôi có cùng ngày phân loại mất tiêu điểm. Vì vậy, những gì tôi đã làm là, orderBy hai bối cảnh khác nhau như thứ tự đầu tiên của Id và trật tự sau theo Ngày:
var orderedArticles = db.Articles.OrderByDescending(a => a.Id).OrderByDescending(a => a.Date).ToList();
Vì vậy, sau này tôi có như sau:
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
Tôi thực sự không biết nếu đây là cách đúng đắn để làm điều đó bởi vì vấn đề chính là khi bạn gửi một trường ngày như 16/09/2009 nó đặt thời gian đến 00:00 và đây là một vấn đề về tình trạng này.
Xin lỗi - Tôi đã không có các vấn đề với các ngày sắp xếp, giả sử Date là một trường datetime. Có lẽ bạn có thể cụ thể hơn đối với loại/phiên bản cơ sở dữ liệu của bạn? –
thử di chuyển OrderBy. Do: return View (articles.ToList(). OrderBy (a => a.Date)); Những gì bạn đang làm có vẻ đúng, nhưng điều này sẽ lấy cơ sở dữ liệu ra khỏi phương trình và chỉ cần sử dụng LINQ để sắp xếp đối tượng. Nếu điều này làm việc, sắp xếp không xảy ra trong truy vấn LINQ. – anonymous