, , , - "" .
, 30- , :
Result 1, 2016-02-02 13:00:24, 2016-02-02 13:00:00 (bucket 1)
Result 1, 2016-02-02 13:01:24, 2016-02-02 13:00:00 (bucket 1)
Result 1, 2016-02-02 13:02:24, 2016-02-02 13:00:00 (bucket 1)
Result 1, 2016-02-02 13:33:24, 2016-02-02 13:30:00 (bucket 2)
- , . , , - , (), :
from l in loc
join bucket in (
from l in loc
group l by new DateTime(l.ReadTime.Year, l.ReadTime.Month, l.ReadTime.Day, l.ReadTime.Hour, l.ReadTime.Minute < 30 ? 0 : 30, 0) into g
select g.Min(m => m.ReadTime)
) on l.ReadTime equals bucket
select new LocationModel
{
Lng = l.FirstOrDefault().Lng,
Lat = l.FirstOrDefault().Lat
}
, , . / , /, , :
from l in loc
join bucket in (
from l in loc
group l by new DateTime(l.ReadTime.Year, l.ReadTime.Month, l.ReadTime.Day, l.ReadTime.Hour, l.ReadTime.Minute < 30 ? 0 : 30, 0) into g
select g.Min(m => m.Id)
) on l.Id equals bucket
select new LocationModel
{
Lng = l.FirstOrDefault().Lng,
Lat = l.FirstOrDefault().Lat
}
. , . , .
, Linq to SQL, DbFunctions DateTime EF, - (, DbFunctions.CreateDateTime).