最初に、いくつかの関連テーブルに含まれているEF4.1コードを使用してデータを取得する必要があります。現在、これを使用する場合
return Context.Set<Entity>()
.Include(x => x.Children.Select(y => y.GrandChildren.Select(z => z.Child)))
.Include(x => x.SomeEntity)
.Include(x => x.AnotherEntity)
.OrderByDescending(x => x.Id)
.FirstOrDefault();
データは正しくフェッチされますが、2つのことが心配です。
1)子供/孫を分類する方法がないようです
2)データは1つのテーブルにフラット化されます。つまり、エンティティ(および他のすべての)データはGrandChildレコードごとに複製されます。
質問:
- 子供/孫を並べ替えるために何をする必要がありますか?
- 転送されるデータの量は大きくないため、この特定のケースでは2番目のポイント自体は問題にならない可能性があります。30列で最大30レコードです。それでも、Enttity、Children、GrandChildrenを別々にロードして(3つのクエリ)、クライアントサイトに参加させる方法があるかどうか知りたいですか?
返される結果セットは更新可能である必要があります。