我有这样的表
TaskID------ParentID-------TaskName
1-----------Null-----------AllPro
2-----------1--------------Drink
3-----------2--------------Coco
4-----------2--------------Pepsi
5-----------1--------------Food
6-----------5--------------Macdo
我试图将它放到树视图中,我的问题是,当我想在任务ID和父ID之间建立关系时,resault是重复的,因为你可以看到我的代码:
关系在一个表中的两列之间:
public IQueryable<tblTask> GetTaskTree()
{
var MySubject = from publisher in ObjectContext.tblTasks
join subjects in ObjectContext.tblTasks
on publisher.ParentTaskID equals subjects.TaskID
select publisher;
return MySubject;
}
这个结果是这样的:
Drink
--Pepsi
--Coco
Pepsi
Coco
Food
---Mac
Mac
这是itemtemplate
你能帮助我吗?
答案 0 :(得分:0)
我认为你不应该加入你的LINQ;你的表应该只读一次,并且你应该知道如何使用递归键ParentID将它们嵌套到彼此的所有记录,基本上每个记录都有一个Id,一个标签,并且知道它属于哪个其他父记录,没有理由加入
在旧的Windows窗体编程中,我可能会编写一个小程序来扫描所有记录并相应地创建节点。一般来说,TreeView也有一些分层属性,所以你可以指定父节点字段或类似的东西,TreeView为你制作层次结构,但我真的不确定这个用默认的Windows窗体TreeView,我用过很多控件不记得哪些功能没有检查...(DevExpress,Telerik,Infragistics ...)。