linq查询从一个到多个不允许我检索最后多个

时间:2015-07-29 22:16:35

标签: sql asp.net linq

我有一个jobmain表,每个作业只有一个jobnumber,然后是jobparts表,每个作业有许多作业部分,然后是jobpartsforms,每个作业部分有多种形式。 Linq只允许以下内容:

Dim query = From jst In db.JobMains _
Where jst.JobNum = CInt(Session("JobNumber")) _
Select jst.JobParts

但是我希望获得看起来像这样的jobpartsforms:

Dim query = From jst In db.JobMains _
Where jst.JobNum = CInt(Session("JobNumber")) _
Select jst.JobParts.JobPartsForms

我怎么能这样做呢?为什么它不能像我认为的那样工作,因为关系都是内置的?

1 个答案:

答案 0 :(得分:1)

在选择JobPartsForms之前,您需要展平查询。

Dim query = From jst In db.JobMains _
Where jst.JobNum = CInt(Session("JobNumber")) _
From part in jst.JobParts _
Select part.JobPartsForms

或者使用lambda语法,您可以使用SelectMany:

db.JobMains _
.Where(Funtion(j) j.JobNum = CInt(Session("JobNumber")) _
.SelectMany(Funtion(j) j.JobParts) _
.Select(Function(jp) jp.Forms)