Несмотря на то, что я не согласен с уважаемым ответчиком, я считаю, что принятый здесь ответ неверен, и это не принципиально вопрос проецирования на неделю в году.
GetWeekOfYear () и концепция в целом предполагают присвоение значений индекса неделям в течение года в соответствии с некоторыми согласованными стандартами. Он не подходит для размещения дат в группах по семь соседних дней, так как я полагаю, что спрашивающий требует.
Мало того, что GetWeekOfYear () будет использоваться не только как предлагаемый результат в группах менее семи дней в конце многих лет, но, что еще хуже, поскольку различные стандарты, поддерживаемые GetWeekOfYear (), будут часто распределяться по первым дням года до последней недели предыдущего года, и, тем не менее, результат GetWeekOfYear () содержит только целочисленный индекс недели без ссылки на связанный год, с группировкой по new { Year = date.Year, weekProjector(date) }
или date.Year + "-" + weekProjector(date)
в году опрашивающего, с 1 января 2011 года, сгруппированным с Рождество до Нового года двенадцать месяцев спустя того же года .
Таким образом, я бы сказал, что исходный вопрос в основном состоит в том, чтобы спроецировать не на значение недели года, а на неделю всего времени значение, "неделю, начинающуюся с года / м / d "вы могли бы сказать, поэтому группировка должна производиться только к первому дню недели, т. е. (при условии, что вы будете счастливы по умолчанию на воскресенье) просто:
group by date.AddDays(-(int)date.DayOfWeek)