1

我有一个相关表的结构,如下所示:

在此处输入图像描述

给定 WorkReleaseDetail.WorkReleaseHeaderId,我想使用 Linq 扩展获取按 WorkOrderDetail.ItemId 分组的 WorkOrderDetail.EstimatedQty 的总和。

因为我需要对最低的表进行分组,所以我想我可以。像这样的地方:

WorkOrderDetail.WorkOrderHeader.WorkReleaseDetail.WorkReleaseHeaderId == id

但是没有骰子,因为您在 OrderGroupDetails 处停下来,因为它是一个聚合,您过去的唯一选择是 .Sum 等,这是有道理的。

然后我想这样做(应该可以):

var woDtlRepos = new Repository<WorkOrderDetail>();
var workOrdDtl = woDtlRepos.SearchFor(
x => x.WorkOrderHeader.FacilityId == intFacilityId
&& x.WorkOrderHeader.WorkReleaseDetails.WorkOrderHeaderId == intWorkReleaseId);

var workRlsNeeds = workOrdDtl
.GroupBy(group => new
    {
        group.ItemId
    }
)
.Select(result => new 
    { 
        ItemId = result.Key.ItemId,
        TotalQty = result.Sum(a => a.EstimatedQuantity)
    }
);

我怎样才能做到这一点?

4

1 回答 1

1

啊……顿悟了……使用 .Any()

var workOrdDtl = woDtlRepos.SearchFor(
x => x.WorkOrderHeader.FacilityId == intFacilityId
&& x.WorkOrderHeader.WorkReleaseDetails.Any(woRlsHdr => woRlsHdr.WorkReleaseHeaderId ==      intWorkReleaseId));
于 2013-03-28T05:26:09.187 回答