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>.Key Property


版权声明:本文为sinat_23050697原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。