public static void Print(PictureCategory cat, int level) { StringBuilder sb = new StringBuilder(); Console.WriteLine("{0}{1}", sb.Append(' ', level).ToString(), cat.Name); cat.Subcategories.ForEach(child => Print(child, level + 1)); }
public static void Run() { using (var context = new Recipe5Context()) { var louvre = new PictureCategory { Name = "Louvre" }; var child = new PictureCategory { Name = "Egyptian Antiquites" }; louvre.Subcategories.Add(child); child = new PictureCategory { Name = "Sculptures" }; louvre.Subcategories.Add(child); child = new PictureCategory { Name = "Paintings" }; louvre.Subcategories.Add(child); var paris = new PictureCategory { Name = "Paris" }; paris.Subcategories.Add(louvre); var vacation = new PictureCategory { Name = "Summer Vacation" }; vacation.Subcategories.Add(paris); context.PictureCategories.Add(paris); context.SaveChanges(); } using (var context = new Recipe5Context()) { var roots = context.PictureCategories.Where(c => c.ParentCategory == null).ToList(); roots.ForEach(root => Print(root, 0)); } }