0

这可能真的很简单,但我似乎无法解决它。基本上,我有一个相当复杂的陈述,其中一部分如下所示:

from a in context.ALLProducts
join m in context.Mappings on a.LegislationID equals m.LegislationCode into map
from subMap in map.DefaultIfEmpty()
let mapping = (subMap.LegislationCode != null) ? subMap.OldLegislationCode : a.LegislationID
...
group a by new { a.ProductCode, a.LanguageID, mapping, a.FormulaID } into g

该查询在映射表上建立了一个链接,该表可能与legalId匹配,也可能不匹配,因此我进行了左连接,然后将结果存储在一个名为mapping的局部变量中,该变量将是映射值或值从第一个表 (a)。现在我需要做的是在我的 group 语句中包含映射变量,但它没有被识别,大概是因为我在表 a 中分组。

有人知道如何获取映射值,以便在对数据进行分组后使用它吗?

非常感谢

安德鲁

4

1 回答 1

2

您应该在将值分配给变量之前验证是否subMap具有值mapping

from a in context.ALLProducts
join m in context.Mappings 
     on a.LegislationID equals m.LegislationCode into map
from subMap in map.DefaultIfEmpty()
let mapping = (subMap != null) ? // here
               subMap.OldLegislationCode : a.LegislationID
group a by new { a.ProductCode, a.LanguageID, mapping, a.FormulaID } into g
select g;
于 2013-06-07T13:42:25.713 回答