linq to entity GroupBy多个字段

var items = _voteRecordRepository.GetAll()
            .Where(x => programIds.Contains(x.ProgrammeId))
            .GroupBy(x=>new {x.ClientType,x.ProgrammeId})
            .Select((group)=>new ProgramVoteRecordSelectItem()
            {
                ProgramId = group.Key.ProgrammeId,
                GetVote=group.Count(),
                ClientType=group.Key.ClientType,
                //这里group是一个集合,如果要取某条记录的信息需要先查找实体,比如:
                DishName=group.FirstOrDefault()!=null?group.FirstOrDefault().DishName:"",
                NameList= group.ToList().Select(x=>x.Name).ToList(),
            })
            .ToList();

IGrouping<TKey, TElement>资料

https://docs.microsoft.com/en-us/previous-versions/windows/silverlight/dotnet-windows-silverlight/bb343251(v=vs.95)?WT.mc_id=DT-MVP-5003010

 

posted @ 2018-01-10 13:41  Lulus  阅读(282)  评论(0编辑  收藏  举报