我有一个查询会生成一个扁平化的结果集,但我实际上并不希望它被展平,我需要对其进行分组。
var test = (from a in _activityNoteService.GetAll()
from l in a.ActivityNoteLines
where l.POItemId == poItem.Id && a.ActivityTypeId == 1
from s in l.StockCatalogueItem.StockInventoryItems
where s.OriginalActivityNoteLineID == l.Id
select new
{
sii = s.Id,
sci = s.StockCatalogueItem,
po = a.PurchaseOrder
}).ToList();
sii
值是我感兴趣的唯一记录,sci
和po
值是常见的(即重复的)。如何重构此内容,以便返回一个sci
,一个po
和sii
条记录列表
答案 0 :(得分:1)
var test = (from a in _activityNoteService.GetAll()
from l in a.ActivityNoteLines
where l.POItemId == poItem.Id && a.ActivityTypeId == 1
from s in l.StockCatalogueItem.StockInventoryItems
where s.OriginalActivityNoteLineID == l.Id
group s by new { sci = s.StockCatalogueItem, po = a.PurchaseOrder } into g
select new
{
ListOfSii = g.Select(s => s.Id),
g.Key.sci,
g.Key.po
}).ToList();