theo dõi

Gần nhất :

Tags

Thống kê câu hỏi

Chuyên mục : Lập trình
Topic : C#
Hỏi lúc:
Lượt xem: 4,120

Nhiều “order by” trong LINQ?

Trịnh Ðăng Khoa Trịnh Ðăng Khoa
 08  01  00
08 bình chọn hữu ích bởi Hoàng Ngọc Bích, Huỳnh Tiền Giang Lý Danh Nhân ... (tất cả)

Xin chào mọi người

Mình có 2 bảng : moviecategories, và mình muốn lấy được danh sách phim theo CategoryID trước sau đó là theo Name

Bảng movie có 3 cột, ID, Name, CategoryID.

Bảng categories có 2 cột, ID, và Name.

Tôi đã thử một cái gì đó như sau, nhưng nó đã không làm việc:

var movies = _db.Movies.OrderBy( m => { m.CategoryID, m.Name })
4,120 xem 10 theo dõi 08 hữu ích hỏi –

Bạn biết ai đó có thể trả lời câu hỏi này?. Bạn có thể giúp đỡ bằng cách tìm những người giỏi nhất:

user user user user user

Đặng Quế Phương Đặng Quế Phương
 14  01  01
08 bình chọn hữu ích bởi Phạm Lạc Nhân, Huỳnh Thiện Tâm Nguyễn Thiên Tuyền ... (tất cả)

Chào bạn, bạn có thể thử lại một chút với đoạn code sau

var movies = _db.Movies.OrderBy(m => m.CategoryID).ThenBy(n => n.Name);
3,923 xem 08 hữu ích trả lời –
Lê Diễm Hằng Lê Diễm Hằng
 05  00  03
03 bình chọn hữu ích bởi Bùi Phương Trinh, Huỳnh Chí Thanh Vũ Mạnh Dũng
public class MovieComparer : IComparer<Movie>
{
    public int Compare(Movie x, Movie y)
    {
        if (x.CategoryId == y.CategoryId)
        {
            return x.Name.CompareTo(y.Name);
        }
        else
        {
            return x.CategoryId.CompareTo(y.CategoryId);
        }
    }
}

Sau đó bạn có thể sử dụng cú pháp sau

var movies = _db.Movies.OrderBy(item => item, new MovieComparer());
3,912 xem 03 hữu ích trả lời –