【发布时间】:2016-12-07 18:58:01
【问题描述】:
我有 3 个表:表 A、B 和 C。表 A 具有主键“Id”,表 B 和 C 都通过将 id 存储在 FK 成员中来链接到该表。
我想要以下:
对于表 A 中的每一行,获取表 B 中的匹配行(A 的 Id 等于表 B 的 FK),并获取表 C 中 FK = Id 的每一行。
所以我的结果应该是一个列表:
{
TableARow,
TableBRow,
List<TableCRow>
}
var query = from r in context.TableA
join c in context.TableB
on r.Id equals c.FK
join m in context.TableC
on r.Id equals m.FK
into mappings
select new MyViewModel
{
A = r,
B = c,
C = mappings.ToList()
};
var result = query.ToList();
上面的查询是我所拥有的,但它每次只为 mappings.ToList() 返回一项。
非常感谢
【问题讨论】:
-
为什么不使用实体的导航属性而不是使用连接? coding.abel.nu/2012/06/dont-use-linqs-join-navigate