【发布时间】:2018-01-19 19:50:42
【问题描述】:
我想使用 Linq 从 SQL Server 表中获取每个组的最新记录。
表格示例:
我想得到这个结果:
我的 Linq 查询为每家公司返回一条记录,但它不返回最近的记录:
var query = from p in db.Payments
where p.Status == false
&& DateTime.Compare(DateTime.Now, p.NextPaymentDate.Value) == 1
group p by p.CompanyID into op
select op.OrderByDescending(nd => nd.NextPaymentDate.Value).FirstOrDefault();
我在这里缺少什么?为什么没有正确订购 NextPaymentDate?
!!更新!! 我的查询按预期工作。在分析了@Gilang 和@JonSkeet cmets 之后,我进行了进一步的测试,发现由于未更新的列,我没有得到预期的结果。
【问题讨论】:
-
这对我来说是正确的 - 2015-11-13 03:30:50.127 是每种情况下的最新结果。你认为哪个结果比这更近?
-
@JonSkeet 该图像是我想要实现的一个示例。真实结果显示较旧的记录(2015-11-13 03:12:21)。
-
啊。如果您展示您实际得到的内容,这会有所帮助...为误读问题而道歉。
-
@JonSkeet 你是对的。很抱歉误导你