Не уверен, что я полностью следую, особенно почему вы не хотите получать доступ через идентификатор узла ... Ваш текущий элемент контента имеет свойство Path, в котором все идентификаторы предков перечислены в списке через запятую.Не могли бы вы просто разделить эту строку и выбрать какой-либо уровень (как я предполагаю, предки [2] для уровня 2), чтобы получить идентификатор этого узла.Тогда вы можете сделать что-то вроде
var level2AncestorId = Umbraco.AssignedContentItem.Path.Split(',')[2];
var openingTimesByDescendants = rootByTraversing.Descendants().Where(f => f.Id == (int)level2AncestorId && f.DocumentTypeAlias == "PageLevel2").FirstOrDefault();
, что должно дать вам только один узел, и это должен быть прямой предок.Правильно?