Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对子项的值求和';Linq扩展中的s儿童_Linq_C# 4.0_Entity Framework 5 - Fatal编程技术网

如何对子项的值求和';Linq扩展中的s儿童

如何对子项的值求和';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处停

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

给定WorkReleaseDetail.WorkReleaseHeaderId,我希望使用Linq扩展名获得按WorkOrderDetail.ItemId分组的WorkOrderDetail.EstimatedQty的总和

因为我需要将最低的表分组,所以我想我可以。比如:

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));