Я хотел бы заполнить древовидную структуру и использовать иерархическую таблицу данных для построения уровней.
Области> Группы> Станции> Задачи
В некоторых случаях я хочу отображать задачи только в том случае, если они имеют тип задачи 13.
Проверьте это:
var gnarly = from a in db.tAreas
join g in db.tGroups on a.ID_area equals g.ID_area
join s in db.tStations on g.ID_group equals s.ID_group
join t in
(from T in db.tTasks
where T.Task_Type == 13
select T) on s.ID_station equals t.ID_Station
into t_Filtered
from tf in t_Filtered.DefaultIfEmpty()
select new
{
tGroups = a.tGroups,
tCaption = a.tCaption
};
Обычно, я бы использовал левое соединение, поэтому я пробую что-то типа типа / DefaultIfEmpty ... однако, как я могу выбрать область, в которой есть только задачи с правильным типом ?? Я думаю, что секрет заключается в формировании выбора нового, но так как моя иерархия основана на списках, составленных из списков, составленных из списков из списков ... Я не знаю, как я могу это осуществить. Я не понимаю смысла до уровня task_type из областей.
Я думаю, если бы я поместил конвертер в свое иерархическое древовидное представление, я бы тогда мог фильтровать ... но я хотел бы знать, возможно ли это с некоторым LINQ, как в примере выше.