【发布时间】:2016-05-11 01:40:02
【问题描述】:
我似乎无法正确使用这些表进行分组以获得我需要的结果。我有以下 linq 表达式,它只给了我“软件标题”下的最后一项:
List<Inventory> inventoryList = (from u in users
join s in db.software on u.userId equals s.ownerId
select new Inventory { UserId = u.userId, FirstName = u.firstName, LastName = u.lastName, SoftwareTitle = s.title }).ToList();
var currentInventory = inventoryList.GroupBy(i => i.UserId)
.Select(grp => grp.First()).ToList();
这是我得到的结果:
名字 姓氏 软件名称
詹姆斯 史密斯 Photoshop
迈克 琼斯 Microft Office
蒂姆 威廉姆斯 Microsoft Office
我需要这样的结果:
名字 姓氏 软件名称
James 史密斯 插画家、Microsoft Office、Photoshop
Mike 琼斯 Visual Studio,Microft Office
蒂姆 威廉姆斯 Photoshop、Microsoft Office
我不知道如何在“s.title”上进行连接,所以它会给我一个逗号分隔的列表。当我尝试 string.join(",", s.title.ToArray()) 时,我只得到了一个字符数组,例如 P,h,o,t,o,s,h,o,p。
【问题讨论】:
-
您能否将集合的设置添加到问题中?
-
数据来自数据库。我正在使用实体框架。
标签: c# entity-framework linq grouping