У меня есть следующий запрос, который отлично работает:Использование Linq группы по утверждению в качестве подзапроса
var bands = new List<TimeBand>()
{
new TimeBand(){Region = 10,PeriodId = 5,StartDate = new DateTime(2013, 04, 01),EndDate = new DateTime(2014, 05, 31),DayName = "Friday",StartTime = "00:00",EndTime = "07:00"},
new TimeBand(){Region = 10,PeriodId = 5,StartDate = new DateTime(2013, 04, 01),EndDate = new DateTime(2013, 05, 31),DayName = "Friday",StartTime = "07:00",EndTime = "00:00"},
new TimeBand(){Region = 10,PeriodId = 4,StartDate = new DateTime(2013, 06, 01),EndDate = new DateTime(2013, 08, 31),DayName = "Saturday",StartTime = "20:00",EndTime = "00:00"}
};
var query = (from x in bands
group x by new {x.Region, x.DayName}
into grp
select new TimeBand()
{
Region = grp.Key.Region,
DayName = grp.Key.DayName,
StartDate = grp.Min(x => x.StartDate),
EndDate = grp.Max(x => x.EndDate)
}).ToList();
Но как я группа результатов по регионам и DAYNAME я не получаю другие столбцы в моем результате т.е. время_запуска и Время окончания.
Если бы это был запрос SQL, я бы использовал эти сгруппированные результаты в подзапросе и получил другие столбцы.
Есть ли способ изменить это, чтобы я также получил свойства, которые не включены в инструкцию по команде.
Thanks
'grp' реализует' IEnumerable <> ', который имеет все столбцы. Вы просто не выбираете их прямо сейчас. –
@ 03Usr Это потому, что есть не только одно значение. Каждый элемент в последовательности представляет собой последовательность элементов. Вы можете перебирать * этот * для получения каждого элемента. Затем вы можете вывести значения столбцов из любого из этих элементов. – Servy
Спасибо Servy/Tim S Я отлаживал и видел его. – 03Usr