Nếu tất cả các hàng của bạn chứa ngày sử dụng cùng một định dạng ngày bạn có thể chỉ cần đặt hàng theo giá trị chuỗi của chúng. Nhưng vì định dạng ngày phổ biến nhất (tức là tiếng Anh) KHÔNG bắt đầu với năm, điều đó có thể chứng minh có vấn đề.
Tùy chọn A .: Sắp xếp trong bộ nhớ.
var records = db.YourTable.Where(o=>o.Discriminator =="date").AsEnumerable()
.Select(o=>new {Entity= o, Date=DateTime.Parse(o.YourColumn)})
.OrderBy(o.Date).Select(o=>o.Entity);
ĐỪNG làm điều này nếu bạn có rất nhiều hàng, hoặc nếu bạn phải, ít nhất có đoan để cache kết quả ra lệnh ...
Lựa chọn B .: Cơ sở dữ liệu ma thuật
Thêm cột bổ sung vào DB của bạn, đặt ngày THAT (không thể thực hiện) và cập nhật nếu ngày phân biệt đối xử. Bạn có thể cập nhật nó trong một (DML) Kích hoạt hoặc từ C# ...
HOẶC nếu việc chuyển đổi rất đơn giản bạn có thể xây dựng một xem ra khỏi nó ...
Bạn muốn làm gì với các giá trị không phải ngày? Làm rơi chúng? – Otiel
Trong truy vấn của tôi, tôi sẽ chỉ chọn giá trị ngày vì tôi sẽ có loại trong cột khác cho tôi biết loại cột dữ liệu là – Luke101
@ Luke101 trước tiên lấy tất cả bản ghi từ cơ sở dữ liệu vào danh sách rồi thực hiện thao tác trên danh sách đó (như sắp xếp ...) –