Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq 按日期时间分组的实体框架_Linq_Datetime_Entity Framework 4 - Fatal编程技术网

Linq 按日期时间分组的实体框架

Linq 按日期时间分组的实体框架,linq,datetime,entity-framework-4,Linq,Datetime,Entity Framework 4,每5分钟在sql server表中添加一行。这些字段是: 日期时间标记,整数总计 使用entity framework,我想使用过去三个月的平均值填充一个新列表,该列表涵盖整个星期的五分钟值 我如何使用实体框架来实现这一点?假设您的日志确实精确到“五分钟”,并且我非常理解 ,你想要一个7天*24小时*(60/5)分钟的列表,那么2016年的结果如何 //define a startDate var beginningDate = <the date 3 month ago to start

每5分钟在sql server表中添加一行。这些字段是: 日期时间标记,整数总计

使用entity framework,我想使用过去三个月的平均值填充一个新列表,该列表涵盖整个星期的五分钟值


我如何使用实体框架来实现这一点?

假设您的日志确实精确到“五分钟”,并且我非常理解 ,你想要一个7天*24小时*(60/5)分钟的列表,那么2016年的结果如何

//define a startDate
var beginningDate = <the date 3 month ago to start with>;

//get the endDate
var endDate = beginningDate.AddMonths(3);
var list = myTable.Where(m => m.TimeMark >= beginningDate && m.TimeMark <=endDate)
           //group by dayofWeek, hour and minute will give you data for each distinct day of week, hour and minutes
           .GroupBy(m => new {
               dayofWeek = SqlFunctions.DatePart("weekday", m.TimeMark),
               hour = SqlFunction.DatePart("hour", m.TimeMark),
               minute = SqlFunctions.DatePart("minute", m.TimeMark)
           })
           .Select(g => new {
               g.Key.dayofWeek, 
               g.Key.hour, 
               g.Key.minute,
               total = g.Average(x => x.Total)
           });
//定义起始日期
var起始日期=;
//获取结束日期
var endDate=开始日期。添加月份(3);
var list=myTable.Where(m=>m.TimeMark>=beginningDate&&m.TimeMark new{
dayofWeek=SqlFunctions.DatePart(“weekday”,m.TimeMark),
hour=SqlFunction.DatePart(“hour”,m.TimeMark),
分钟=SqlFunctions.DatePart(“分钟”,m.TimeMark)
})
.选择(g=>new{
g、 基奥夫周,
g、 关键时刻,
g、 关键时刻,
总计=g.平均值(x=>x.总计)
});

这个问题在我看来并不清楚(“用过去三个月的总数平均值计算,整个五分钟的一周”),而且你也没有表现出任何尝试。。。您能更新您的问题吗?好的,日志表每5分钟更新一次。我希望能够每五分钟总结一次(平均)过去三个月。是的,根据你对TimeMark的评论。DayOfWeek TimeMark。Hour等不会例外ectensions@user2018978但是它可以与SqlFunctions.DatePart版本一起使用?我不明白在linq中如何使用sql函数?@user2018978请参见msdn:我编辑了答案,您可以尝试此新版本(使用System.Data.Objects.SqlClient;在文件顶部添加
),再次感谢!我根本不知道那门课!