.net 并且在VB Linq查询中,不';我好像不工作
当bomid中存在MatID属性为nothing的元素时,以下查询将失败,并出现Null引用异常。 我认为“x.MatID不是什么,而且”会阻止where的x.MatID.Process部分被执行。BOMIDs系列中有几个元素,其中MatID一文不值。 有什么想法吗.net 并且在VB Linq查询中,不';我好像不工作,.net,vb.net,linq,.net,Vb.net,Linq,当bomid中存在MatID属性为nothing的元素时,以下查询将失败,并出现Null引用异常。 我认为“x.MatID不是什么,而且”会阻止where的x.MatID.Process部分被执行。BOMIDs系列中有几个元素,其中MatID一文不值。 有什么想法吗 From x In BOMIDs _ Group Join y As PurchasedProcess In SpecialProcesses _ On x.MatID.PurchasedProcess Equals y.Name
From x In BOMIDs _
Group Join y As PurchasedProcess In SpecialProcesses _
On x.MatID.PurchasedProcess Equals y.Name _
Into G = Group _
From z In G.DefaultIfEmpty() _
Where x.MatID IsNot Nothing AndAlso _
x.MatID.Process = ProcessEnum.PurchasedProcess _
Select New With {.Item = x.Item, .Process = z}
通过浏览您的代码,这行代码似乎也是一个潜在的问题点:
On x.MatID.PurchasedProcess Equals y.Name
由于查看您的代码时,
x.MatID
可以是无任何内容
,因此这一行可能也是一个潜在的故障点:
On x.MatID.PurchasedProcess Equals y.Name
由于
x.MatID
可以是无
,因此也不存在问题。将null检查移动到连接之前,以便在连接之前有效地过滤掉所有出现的null
尝试此更新的查询:
From x In BOMIDs _
Where x.MatID IsNot Nothing _
Group Join y As PurchasedProcess In SpecialProcesses _
On x.MatID.PurchasedProcess Equals y.Name _
Into G = Group _
From z In G.DefaultIfEmpty() _
Where x.MatID.Process = ProcessEnum.PurchasedProcess _
Select New With {.Item = x.Item, .Process = z}
而且
也不是问题所在。将null检查移动到连接之前,以便在连接之前有效地过滤掉所有出现的null
尝试此更新的查询:
From x In BOMIDs _
Where x.MatID IsNot Nothing _
Group Join y As PurchasedProcess In SpecialProcesses _
On x.MatID.PurchasedProcess Equals y.Name _
Into G = Group _
From z In G.DefaultIfEmpty() _
Where x.MatID.Process = ProcessEnum.PurchasedProcess _
Select New With {.Item = x.Item, .Process = z}
很好,谢谢。我仍然习惯于Linq,我想我的脑袋被SQL卡住了。这很好用,谢谢。我仍然习惯于Linq,我想我的脑袋被SQL卡住了。