asp.net menu do banco de dados multinível

Atualmente, estou usando um controle de menu asp.net para carregar de uma tabela os itens pai / filho. O problema que estou tendo é que, se a criança tiver outro filho. Meu código é meio estático nesse sentido e não consigo encontrar uma maneira melhor ou "a" de fazê-lo. Vi o sitemap como fontes de dados, mas não preciso de um sitemap e sinto que isso seria um exagero para o que preciso alcançar.

foreach (ClassName option in list)
{
   MenuItem module = new MenuItem(option.Description.ToLower(), "", "", option.Url + "?option=" + option.Optionid);
   module.Selectable = true;
   navigation.Items.Add(module);
   //this is my second level
   foreach (ClassName child in listfromparent(option.Optionid))
   {
         MenuItem childmenu = new MenuItem(child.Description.ToLower(), "", "", child.Url + "?option=" + child.Optionid);
         module.ChildItems.Add(childmenu);
   }
 }

Como você pode ver isso funciona, mas em 2 níveis :( e, claro, eu poderia colocar outro nível infantil dentro da criança para criar o 3º nível, mas e se houver um 4º, 5º? É por isso que eu preciso fazer isso sozinho. o treeview notado foi preenchido, mas aparentemente o Menu não. Agradecemos antecipadamente.

questionAnswers(1)

yourAnswerToTheQuestion