我有一个表单列表,在此列表中,具有相同标题的表单表示该表单的不同版本,最接近创建时间的表单(这是DateTime
类型)是更新的版本。
所以我想使用实体框架代码选择每个表单的最后n个版本。我用过这个,但它仍然给我带来了第一个(最老的)n版本。
List<Forms> dbResult = entities.Forms.OrderByDescending(e => e.CreationDate)
.GroupBy(e => e.Title)
.SelectMany(e => e.Take(n))
.ToList();
我哪里出错了?
答案 0 :(得分:3)
试试这个:
var result = entities.Forms
.GroupBy( x => x.Title )
.SelectMany( g => g.OrderByDescending(v => v.CreationDate).Take(1) );
这将返回具有最大CreationDate的相同标题的表单。您可以执行其他过滤以获取n个项目并以任何方式对其进行排序。