В Linq to SQL можно сгруппировать по номеру недели рабочей недели, а не по неделям из года, например, 01.01.2016 приходится на ту же неделю, что и 31.12.2015, это не та же неделя года (но это на той же физической неделе, если хотите)
Группа Linq to SQL (Entity Framework) по номеру рабочей недели
comment
Entity Framework! = LINQ to SQL. Посмотрите на дату с неделей ISO.
- person Gert Arnold   schedule 09.12.2015
Ответы (1)
Вот пример группировки по рабочим неделям, где рабочие недели нумеруются с самой старой даты в MyTable
using(var ctx = new MyEntities())
{
DateTime firstDate = ctx.MyTable.OrderBy(x => x.Date).First().Date;
var dates = ctx.MyTable.OrderBy(x => x.Date).Select(x => new { iVal = SqlFunctions.DateDiff("week", firstDate, x.Date), date = x.Date}).ToList();
var datesGrouped = ctx.MyTable.OrderBy(x => x.Date).Select(x => new { iVal = SqlFunctions.DateDiff("week", firstDate, x.Date), date = x.Date}).GroupBy(x => x.iVal).ToList();
Console.WriteLine("Ungrouped:");
dates.ForEach(x => Console.WriteLine("Week #: " + x.iVal + " Date: " + x.date));
Console.WriteLine("Grouped:");
datesGrouped.ForEach(x => Console.WriteLine("Week #: " + x.Key + " Date: " + x.First().date));
Console.ReadLine();
}
person
Jakotheshadows
schedule
08.12.2015