2009-04-11 4 views
1

Предположим, что у нас есть класс меню, у которого есть SubMenus (который является одним и тем же типом меню, поэтому может иметь SubMenus и элементы) и элементы (которые имеют другой тип), и мы сохранили их в двух таблицы (один для меню и один для элементов). Есть ли способ загрузить полный график класса Menu (все его SubMenus и элементы) с использованием LINQ to SQL?Загрузка завершенного графика из Sql с использованием LINQ

ответ

0

Если вы правильно определяете отношения в SQL, LINQToSQL должен вернуть вам все меню/элементы с одним запросом в меню. Однако это не даст его использовать в качестве графика, а как перечисление меню (со связанными меню и элементами). Вам нужно будет выполнить итерацию по этому перечислению и построить график самостоятельно.

С другой стороны, вы могли бы быть в состоянии сделать что-то вроде этого:

var roots = db.Menus.Where(m => !m.SubMenus.Count == 0); 

Тогда roots будет коллекцией базового меню. Этого может быть достаточно, если вы не намереваетесь выполнять какие-либо алгоритмы анализа графика на нем, но только намерены пересечь его сверху вниз, чтобы построить компоненты GUI.

+0

Я хочу сериализовать полный график в XML-файл с помощью DataContractSerializer, поэтому я думаю, что мне нужно загрузить все объекты. Могу ли я использовать LoadOptions так или иначе, чтобы их загрузить? – mrtaikandi

+0

Если вы хотите сериализовать структуру графика, а не только элементы, я думаю, вам нужно будет построить фактический график. В перечислении вы будете иметь повторяющиеся элементы в родительских/дочерних свойствах для любых общих меню. Проверьте свой DBML - отношения уже могут быть загружены. – tvanfosson

+0

Я хочу сериализовать элементы. – mrtaikandi

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

  • Нет связанных вопросов^_^