我有一个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
我怎么能这样做呢?为什么它不能像我认为的那样工作,因为关系都是内置的?
答案 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)