可以說我有以下的數據庫模型: 遍歷一個列表,其中包含一個自引用列表
在這段代碼看起來是這樣的:
ButtonCategories
public class ButtonCategory
{
public ButtonCategory()
{
this.Buttons = new HashSet<Button>();
this.SubCategories = new HashSet<ButtonCategory>();
}
[Key]
public int Id { get; set; }
[Required]
public string Description { get; set; }
public int? ParentCategoryId { get; set; }
[ForeignKey("ParentCategoryId")]
public virtual ButtonCategory ParentCategory { get; set; }
public virtual ICollection<ButtonCategory> SubCategories { get; set; }
public virtual ICollection<Button> Buttons { get; set; }
}
按鈕
public class Button
{
[Key]
public int Id { get; set; }
public int? ButtonCategoryId { get; set; }
[ForeignKey("ButtonCategoryId")]
public virtual ButtonCategory ButtonCategory { get; set; }
}
正如你所看到的,我的ButtonCategories有一個自引用列表。
所發生的問題是,我想所有ButtonCategories轉換爲另一種類型,讓我們說ButtonCategoriesMock。我想對列表中的所有按鈕也這樣做。 這樣做的問題是,我不知道,也不知道有多少個子級別。可能只有一個子類別,但它也是子類別子類別的子類別,...等等。
我怎麼能輕鬆地轉換所有ButtonCategory項目和按鈕項目爲另一種類型?
在此先感謝!
什麼其他類型的? –
如果你想平坦的輸出,試試這個:http://stackoverflow.com/questions/1938409/linq-how-to-convert-the-nested-hierarchical-object-to-flatten-object – Greg