Skip to content

Instantly share code, notes, and snippets.

@tsvetomir
Created December 17, 2012 11:50
Show Gist options
  • Save tsvetomir/4317701 to your computer and use it in GitHub Desktop.
Save tsvetomir/4317701 to your computer and use it in GitHub Desktop.
Date grouping with LINQ to Entities
var groupedData =
from s in db.Intraday
where s.Date >= dateFrom && s.Date <= dateTo
group s by new
{
Year = s.Date.Year,
Month = baseUnit >= BaseUnit.Months ? s.Date.Month : 1,
Day = baseUnit >= BaseUnit.Weeks ? s.Date.Day : 1,
Hour = baseUnit >= BaseUnit.Hours ? s.Date.Hour : 0,
Minute = baseUnit >= BaseUnit.Minutes ? s.Date.Minute : 0
} into g
select g;
var points =
from g in groupedData.ToList()
select new StockDataPoint
{
Date = new DateTime(g.Key.Year, g.Key.Month, g.Key.Day, g.Key.Hour, g.Key.Minute, 0),
Open = g.Max(s => s.Open),
High = g.Max(s => s.High),
Low = g.Min(s => s.Low),
Close = g.Max(s => s.Close),
Volume = g.Sum(s => s.Volume)
};
result = points.ToList();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment