Я работаю над созданием иерархии деревьев с использованием Linq, и поскольку я новичок в этом, я столкнулся с проблемой. У меня есть две таблицы, из которых я должен создать иерархию и таблица выглядит следующим образомИерархия дерева зданий с использованием Linq
Таблица A
Id
Name
Description
Таблица B
Id of A (as foreign key)
Name
И мне нужна структура, как это:
name(From table A)
|_name(from table B)
|_name (from table B)
name(from table A)
У меня есть класс, определенный в качестве
Public Class C
{
public class C(C item,IEnumerable<C> id,IEnumerable<C> data)
{
AId=item.AI;
BId=item.BId;
AName=item.Name;
Childeren=id;
}
public IEnumerable<C> Children{get;set}
}
Все названия таблиц должны быть отображены даже он не имеет узлов
я группа присоединиться, чтобы получить данные из обеих таблиц и теперь у меня возникли проблемы с кода для выбора узла и его узла. Мой код LINQ следующим образом:
private List<Model> BuildHierarchy(IEnumerable<Model> Hirs)
{
var families=Hirs.ToLookup(x => x.AId);
var topmost = families.First().Select(s => s);
Func<string, IList<Model>> children = null;
children = (parentId) => families[parentId]
.OrderBy(x => x.BId)
.Select(x => new Model(x, children(x.BId), Hirs))
.OrderBy(o=> o.Bid).ToList();
return topmost.Select(mod => new Model(mod, children(mod.BId), Hirs)).ToList();
}
Что она делает это получает только первый узел таблицы А, но узел все данные. Когда я нажимаю на узел, метод снова запускается, создавая тот же узел.
Я понятия не имею, почему у меня возникает эта проблема, если вы, ребята, поможете мне, это будет большой помощью, поскольку я застрял здесь в течение длительного периода времени.
Спасибо
Что такое «Модель»? Показывать, где вы называете 'BuildHierarchy'? –
Модель предназначена для хранения данных, в которых хранятся данные из базы данных. BuildHierarchy вызывается после заполнения модели, и над кодом предполагается создать узел и его примечание – shunilkarki
Это был призыв добавить код к вашему сообщению. Непонятно, как вы называете «BuildHierarchy» и где идет выход. Кроме того, где класс 'A' и' B' в вашем коде? –