如何对子项的值求和';Linq扩展中的s儿童
我有一个相关表的结构,如下所示: 给定WorkReleaseDetail.WorkReleaseHeaderId,我希望使用Linq扩展名获得按WorkOrderDetail.ItemId分组的WorkOrderDetail.EstimatedQty的总和 因为我需要将最低的表分组,所以我想我可以。比如:如何对子项的值求和';Linq扩展中的s儿童,linq,c#-4.0,entity-framework-5,Linq,C# 4.0,Entity Framework 5,我有一个相关表的结构,如下所示: 给定WorkReleaseDetail.WorkReleaseHeaderId,我希望使用Linq扩展名获得按WorkOrderDetail.ItemId分组的WorkOrderDetail.EstimatedQty的总和 因为我需要将最低的表分组,所以我想我可以。比如: workordedtail.WorkOrderHeader.WorkReleaseDetail.WorkReleaseHeaderId==id 但是,在OrderGroupDetails处停
workordedtail.WorkOrderHeader.WorkReleaseDetail.WorkReleaseHeaderId==id
但是,在OrderGroupDetails处停止时不要掷骰子,因为它是一个聚合,您唯一的选项是.Sum等,这是有意义的
然后我想这样做(应该可以):
var woDtlRepos=new Repository();
var workOrdDtl=woDtlRepos.SearchFor(
x=>x.WorkOrderHeader.FacilityId==intFacilityId
&&x.WorkOrderHeader.WorkReleaseDetails.WorkOrderHeaderId==intWorkReleaseId);
var workRlsNeeds=WORKRDDTL
.GroupBy(组=>新建
{
group.ItemId
}
)
.选择(结果=>新建
{
ItemId=result.Key.ItemId,
TotalQty=结果和(a=>a.EstimatedQuantity)
}
);
我怎样才能做到这一点呢?啊……我顿悟了。。。使用.Any()
啊…顿悟了。。。使用.Any()
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)
}
);
var workOrdDtl = woDtlRepos.SearchFor(
x => x.WorkOrderHeader.FacilityId == intFacilityId
&& x.WorkOrderHeader.WorkReleaseDetails.Any(woRlsHdr => woRlsHdr.WorkReleaseHeaderId == intWorkReleaseId));