【问题标题】:selecting entire row in linq after groupby在 groupby 之后在 linq 中选择整行
【发布时间】:2014-08-20 17:24:17
【问题描述】:

假设我有一个包含 5 列的表(col_1、col_2、col_3、col_4、col_5)。

我正在尝试使用 linq 查询按 2 列(col_2、col_3)分组,我必须选择按第 4 列(col_4)排序的第一条记录,并且必须为所有记录获取包含所有 5 列的整行得到。

from abcd in Context.table
group abcd by new { abcd.col2, abcd.col2 }
   into temp orderby temp.orderby(x=> x.col_4)
   select ..

在这里我很困惑如何获取整个行的值,

我也不确定这个排序逻辑是否能按我的意愿工作

我正在使用 EntityFramework,并且我已经有该行的实体类型, 我创建了一个对象,它是该类的列表。

所以如果我可以直接在该对象中获取结果,那将是最好的。

【问题讨论】:

  • 是错字吗...group abcd by new { abcd.col2, abcd.col2 }...?大概abcd.col2, abcd.col3会来..?
  • 我的原始表有 20 多列,我不想在 select 语句中添加与我在数据模型类中的名称相同的每一列

标签: c# linq entity-framework


【解决方案1】:

每个组都是原始项目的集合,因此您可以在每个组上使用 OrderByFirst 等 Linq 方法:

from abcd in Context.table
group abcd by new { abcd.col2, abcd.col3 }
   into temp 
select temp.OrderBy(x=> x.col_4).First()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    • 2021-11-24
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    相关资源
    最近更新 更多