2つのテーブル、movies
とcategories
があり、最初にcategoryIDで、次にNameで順序付けられたリストを得ることができます。
ムービーテーブルには3つのカラム ID, Name, CategoryID があります。 カテゴリテーブルには、2つのカラムIDとNameがあります。
以下のようなことを試してみましたが、うまくいきませんでした。
var movies = _db.Movies.OrderBy( m => { m.CategoryID, m.Name })
ラムダではない、クエリシンタックスのLINQを使えば、このようなことが可能になります。
var movies = from row in _db.Movies
orderby row.Category, row.Name
select row;
[EDIT to address comment] ソート順を制御するには、キーワード ascending
(これはデフォルトなので特に有用ではありません) または descending
を使用して、次のようにします。
var movies = from row in _db.Movies
orderby row.Category descending, row.Name
select row;
new "を追加。
var movies = _db.Movies.OrderBy( m => new { m.CategoryID, m.Name })
これは私のマシンでは動作します。ソートに使用できるものを返します。これは2つの値を持つオブジェクトを返します。
次のように、組み合わせた列でソートするのと似ていますが、違います。
var movies = _db.Movies.OrderBy( m => (m.CategoryID.ToString() + m.Name))