在我的表中,我有一个属性细节。每个属性都有代理名称。我想按代理名称分组,并取每个代理的最后一行。我使用下面的代码,但它给出了第一行的值。当我使用lastordefault时,它显示错误。任何人都有任何想法
var property = (from n in properties select n).GroupBy(x => x.agentname)
.Where(g => g.Count() == 1)
.Select(g => g.FirstOrDefault()).OrderByDescending(x => x.datecreated).Take(20);
答案 0 :(得分:0)
首先,您的第一个查询对我没有意义,即(from n in properties select n)
您可以直接在GroupBy
上应用properties
。接下来,您将从组中选择第一条记录,并在完整结果上应用OrderByDescending
,因为您只有1条记录,所以不会执行任何操作。
这应该给你预期的结果: -
var property = properties.GroupBy(x => x.agentname)
.Select(x => x.OrderByDescending(z => z.datecreated)
.FirstOrDefault());
这将返回包含last inserted row of each agent
。