可以说我有以下数据库模型:
在代码中,这看起来像这样:
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项和Button项转换为另一种类型?
提前致谢!