Есть ли способ выбрать первый элемент каждого IGrouping
при агрегировании некоторых свойств без явного присвоения каждого неагрегированного свойства в проекции?
Например, SelectAggregatedFirstsOfMyThings()
делает то, что мне нужно,Однако в моем реальном сценарии MyThing
имеет что-то вроде 30 свойств.Я хочу перенести значения свойств первого в каждом IGrouping
без явного объявления MyIntA = x.First().MyIntA
для каждого из неагрегированных свойств.Есть ли какой-то другой сокращенный синтаксис для достижения этого (без использования чего-то вроде Automapper)?
public class MyThing {
public int MyFkId { get; set; }
public int MyIntA { get; set; }
public int MyIntB { get; set; }
public DateTime MyDate {get; set; }
...
}
public class MyCaller {
public IQueryable<MyThing> SelectAggregatedFirstsOfMyThings(IOrderedQueryable<MyThing> myThings) =>
myThings.GroupBy(t => t.MyFkId)
.Select(g => new MyThing
{
MyIntA = g.First().MyIntA,
MyIntB = g.First().MyIntB,
MyDate = g.Max(d => d.MyDate)
...
}
}