LINQ 在单列上分组

LINQ group by on a single column

我有一个数据库 table,如下所示:

ID       USERID       DATE            NAME
1        1            01-01-2001      aaaa
1        2            01-02-2001      aaaa
1        3            01-03-2001      aaaa
2        5            02-02-2002      bbbb
2        6            02-02-2002      bbbb
2        7            02-02-2002      bbbb

所以我想按 ID 对所有内容进行分组,因此每个 ID 都有多个 USERIDs。但是 DATENAME 都是一样的。那么如何将其作为 linq 查询?

到目前为止我想到了这样做,这对用户有效

from table in context.table
group table.USERID by table.ID into grp
orderby grp.Key descending
select new
{
    ID = grp.Key,
    Users = grp.ToList()
}

但是如果我添加其他项目如 DATE 这不起作用,因为 DATE 有时是不同的。但是,如果 select 第一次约会就好了。

编辑我想要的结果是:

ID       Users        DATE            NAME
1        1,2,3        01-01-2001      aaaa
2        5,6,7        02-02-2002      bbbb

您按多列分组:

from table in context.table
group new{table.UserID,table.Date} by new{table.ID,table.Name} into grp
orderby grp.Key.ID descending
select new
{
    ID = grp.Key.ID,
    Date=grp.FirstOrDefault().Date,
    Name=grp.Key.Name,
    Users = grp.Select(e=>e.UserID).ToList()
}