Filmler ve kategoriler olmak üzere iki tablom var ve önce categoryID ve ardından Name'e göre sıralı bir liste alıyorum.
Film tablosunda ID, Name ve CategoryID olmak üzere üç sütun vardır. Kategori tablosunda ID ve Name olmak üzere iki sütun vardır.
Aşağıdaki gibi bir şey denedim ama işe yaramadı.
var movies = _db.Movies.OrderBy( m => { m.CategoryID, m.Name })
Lambda olmayan, sorgu sözdizimi LINQ kullanarak bunu yapabilirsiniz:
var movies = from row in _db.Movies
orderby row.Category, row.Name
select row;
[Sıralama düzenini kontrol etmek için yükselen
(varsayılandır ve bu nedenle özellikle kullanışlı değildir) veya azalan
anahtar kelimelerini kullanın:
var movies = from row in _db.Movies
orderby row.Category descending, row.Name
select row;
"new" ekleyin:
var movies = _db.Movies.OrderBy( m => new { m.CategoryID, m.Name })
Bu benim kutumda çalışıyor. Sıralamak için kullanılabilecek bir şey döndürüyor. İki değer içeren bir nesne döndürür.
Aşağıdaki gibi birleştirilmiş sütuna göre sıralamaya benzer, ancak farklıdır.
var movies = _db.Movies.OrderBy( m => (m.CategoryID.ToString() + m.Name))