Если вы правильно определите отношения в SQL, LINQToSQL должен вернуть вам все меню / элементы одним запросом к меню. Однако это не вернет его для использования в качестве графика, а для перечисления меню (со связанными меню и элементами). Вам нужно будет перебрать это перечисление и построить график самостоятельно.
С другой стороны, вы можете сделать что-то вроде этого:
var roots = db.Menus.Where( m => !m.SubMenus.Count == 0 );
Тогда roots
будет набором базовых меню. Этого может быть достаточно, если вы не собираетесь выполнять какие-либо алгоритмы анализа графов на нем, а намереваетесь только пройти его сверху вниз, чтобы создать компоненты графического интерфейса.