Linq在哪里声明一对多

时间:2014-03-11 16:12:22

标签: c# linq

表“aaa”有一个带有外键的列“bbb”,后者又将它放到表“ddd”中。表“ddd”有一个名为“costRef”

的ID列

我想选择那些带有我的“ddd”的“aaa”,其中包含我的列表中包含的特定costRef。

var query =
        from tr in db.aaa
        where tr.bbb.Any(x => x.ccc.ddd.Any(y => intList.Contains(y.costRef)))
        select tr;

在上面那种情况下,如果有任何参考,我得到了所有的“aaa”。我能理解,但这不是我想要的:)但我如何设法做到这一点? 尝试用select和where语句分配而不是我的“any”。顺便说一下,这是做到这一点的方法,但我无法管理它。

1 个答案:

答案 0 :(得分:-2)

我在Linq出现之前做过SQL,所以我仍然倾向于遵循相同的结构。在这种情况下,您可以这样做:

var query = from a in db.aaa
join b in db.bbb on a.FK equals b.ID
join c in db.ccc on b.FK equals c.ID
where intList.Contains(c.costRef)
select a