2015-12-08 3 views

Répondre

0

Voici un exemple de regroupement par semaine de travail, avec des semaines de travail numérotées à partir de la date la plus ancienne en 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(); 
}