次のデータベースモデルがあるとしましょう:
コードでは、これは次のようになります。
ボタンのカテゴリ
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としましょう。そして、リスト内のすべてのボタンに対して同じことをしたいと思います。これを行う上での問題は、サブレベルがいくつあるのか、私にはわからないことです。サブカテゴリが 1 つしかない可能性もありますが、それがサブカテゴリのサブカテゴリのサブカテゴリである可能性もあります...などです。
すべてのButtonCategoryアイテムとButtonアイテムを別のタイプに簡単に変換するにはどうすればよいですか?
前もって感謝します!