複数レベルの階層を持つアカウントを表すデータベース テーブルがあります。各行には、現在のアカウントを表す「AccountKey」と、場合によっては親の「AccountKey」を表す「ParentKey」があります。
私のモデル クラスは「AccountInfo」で、アカウント自体に関する情報と、子アカウントのリストが含まれています。
このフラットなデータベース構造を階層に変換する最も簡単な方法は何ですか? LINQ で直接実行できますか?それとも、後でループして手動でビルドする必要がありますか?
モデル
public class AccountInfo
{
public int AccountKey { get; set; }
public int? ParentKey { get; set; }
public string AccountName { get; set; }
public List<AccountInfo> Children { get; set; }
}
リンク
var accounts =
from a in context.Accounts
select new AccountInfo
{
AccountKey = a.AccountKey,
AccountName = a.AccountName,
ParentKey = a.ParentKey
};