【发布时间】:2013-07-26 20:15:58
【问题描述】:
假设我有以下数据库模型:
在代码中是这样的:
按钮类别
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。我想对列表中的所有 Buttons 执行相同的操作。 这样做的问题是我不知道,也不能说,有多少个子级别。有可能只有一个子类,也有可能是子类的子类的子类,……以此类推。
如何轻松地将所有 ButtonCategory 项和 Button 项转换为另一种类型?
提前致谢!
【问题讨论】:
-
如果你想扁平化输出,试试这个:stackoverflow.com/questions/1938409/…
标签: c# linq entity-framework collections