グリッド上で階層データバインディングを実行していますが、データベースサーバーにオブジェクトの並べ替えを実行させる必要があります。親コレクションは簡単に並べ替えることができますが、すべての子コレクションも並べ替える方法がわからないようです。子コレクションが3つの深さでネストされているモデルがあり、これらのコレクションはすべて並べ替える必要があります。
これが私が達成しようとしていることのサンプルモデルです:
public class Year
{
public int Id { get; set; }
public string Name { get; set; }
public List<Make> Makes { get; set; }
}
public class Make
{
public int Id { get; set; }
public string Name { get; set; }
public List<Model> Models { get; set; }
}
public class Model
{
public int Id { get; set; }
public string Name { get; set; }
public List<Color> Colors { get; set; }
}
public class Color
{
public int Id { get; set; }
public string Name { get; set; }
}
「Year」オブジェクトのリストを読み込もうとしています。これには、色のコレクションを持つモデルのコレクションを持つメイクのコレクションがあります。これらのオブジェクトはすべて、nameプロパティに基づいて並べ替える必要があります。
私はこれをやってみました:
List<Year> years = db.Years.OrderBy("it.Name")
.Include("Makes").OrderBy("it.Name")
.Include("Makes.Models").OrderBy("it.Name")
.Include("Makes.Models.Colors").OrderBy("it.Name")
.ToList();
しかし「それ」。は、選択されているテーブルのエイリアスにすぎません...この場合は「Years」です。子テーブルのエイリアスを作成して、単一のクエリで子テーブルでも並べ替えを実行できるようにする方法はありますか?