【问题标题】:Linq to Sql Query select last columnLinq to Sql 查询选择最后一列
【发布时间】:2013-11-05 23:49:40
【问题描述】:

我有这样的桌子

Id Count  Date
1   56    04.10.2012
2   41    05.10.2012
3   56    06.10.2012

我每天只有一条新记录,当天更新计数

我需要使用 Linq to Sql 选择最新的记录

var result = from q in repositoryManager.Repository.AsQueryable<Detail>()
             group q by q.Id
             into grp
             select grp.OrderByDescending(x => x.Id).FirstOrDefault();

上面的查询不起作用,它返回第一行而不是最后一行。 如何解决?

【问题讨论】:

  • 你的意思是它正在返回第一

标签: c# entity-framework linq-to-sql entity-framework-4


【解决方案1】:

你不需要group by,因为你没有聚合任何东西。试试这个:

var result = repositoryManager.Repository.OrderByDescending(x => x.Id).FirstOrDefault();

您的方法不起作用的原因是您正在订购每个组(并且每个组只有一条记录),而不是组本身。当您不需要根据分组依据的列聚合数据时,您一开始就不需要分组。

【讨论】:

  • OrderByDescending 没有暴露在我的存储库中,我需要处理 AsQueryable()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-22
  • 1970-01-01
  • 2016-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-17
相关资源
最近更新 更多