2009-05-30 3 views
0

У меня есть коллекция в разделах меню, каждая из которых содержит коллекцию элементов меню (это двухуровневое меню, простые вещи). В идеале я мог бы дезадаптировать коллекцию MenuSection, чтобы захватить MenuItems в одно и то же время, но в противном случае существует ли способ, которым я могу вернуть отдельную коллекцию каждого из них, используя только один вызов базы данных через дозвуковой? Я застрял, используя DataSet с несколькими таблицами?Возвращение нескольких коллекций в SubSonic

ответ

0

Да - есть способы сделать это - множество разных подходов. Вы можете использовать View и загрузить все, а затем открутить это до набора структурированных объектов. Или вы можете запустить объединенный запрос в datareader и загрузить объекты с некоторой логикой цикла.

+0

Роб, спасибо за ответ. Я не совсем понимаю, что вы подразумеваете под «откручиванием» - вы имеете в виду, что я должен загружать коллекцию строк, в которой есть данные из разделов и элементов меню? С чтением и циклом, не означает ли это получение коллекции разделов, а затем отдельный вызов для каждой группы предметов? –

+0

Под «откручиванием» я подразумеваю цикл над читателем и присваиваю значения коллекции. Если вы используете представление, вы можете получить плоское представление данных. Если вы используете объединенный запрос - то же самое - плоское представление данных, которые вы заполняете двумя коллекциями. –

0

Что Роб сказал правильно. Другой угол будет выглядеть примерно так:

Partial Public Class MenuSection 

Private _ChildMenus As Generic.List(Of MenuSection) 
Public Property ChildMenus() As Generic.List(Of MenuSection) 
    Get 
     If _ChildMenus Is Nothing Then 
      ' Load the data in the list 
      _ChildMenus = New SubSonic.Select().From(Data.MenuSelection). _ 
      Where("ParentMenuItemId").IsEqualTo(1). _ 
      ExecuteTypedList(Of Data.MenuSelection)() 
     End If 
     Return _ChildMenus 
    End Get 
    Set(ByVal value As Generic.List(Of MenuSection)) 
     _ChildMenus = value 
    End Set 
End Property 

End Class

Смежные вопросы