我有一個數據庫表,它表示具有多級層次結構的帳戶。每行都有一個代表當前賬戶的「AccountKey」,可能還有一個代表父代的「AccountKey」的「ParentKey」。在LINQ中創建層次結構
我的模型類是「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; }
}
LINQ
var accounts =
from a in context.Accounts
select new AccountInfo
{
AccountKey = a.AccountKey,
AccountName = a.AccountName,
ParentKey = a.ParentKey
};
所以,你有什麼是SQL鄰接表模型(層次通過的ParentId的方式在一個表中保持)。你想將這個錶轉換爲不同的結構,還是保留現有的結構(帶有parentId的單個表)? –