我有这样的数据表:
MtoM
{
ParentID,
ChildID
}
Item
{
ID,
Data,
Label
}
如何编写linq查询,该查询返回给定ParentID下的每个ChildID以及每个后代ID的关联数据和标签。如果我使用SQL,我会使用union all
和inner join
,但我不太了解linq。
性能绝对不是问题,因为最多只有3个嵌套级别,每个级别只有1或2个项目。我试图填充的DDL很少使用,也不是关键任务。
答案 0 :(得分:0)
假设子id在items表中引用ID字段,你可以编写以下查询来获取所需的记录
from mt in MToM
where mt.ParentID == GivenParentID
join it in Item on mt.ChildId equals it.ID
select new { parentID = mt.ParentID, childID = it.ID, childData = it.Data, childLabel = it.Label}
以匿名类型返回数据。你可以创建新的Type并用结果记录填充它