我在这个论坛上通过回复阅读了很多小组,但我还是要问:
var errandQuery = (from t in db.TimereportSet
group t by new { t.Errand.Name, t.Date } into g
select new ErrandTime { Date = g.Key.Date, Value = g.Sum(e => e.Hours) }).ToList();
为什么这不起作用。我收到以下异常:"Unknown column 'GroupBy1.K1' in 'field list'"
异常来自mySQLClient。
答案 0 :(得分:1)
你没有选择小时为g,所以他们不在那里求和。
我不知道你的数据是什么样子但是试试这个:
编辑:
var errandQuery = (from t in db.TimereportSet
group t by new { t.Errand.Name, t.Date } into g
select new ErrandTime { Date = g.Key.Date, Value = g.Sum**(t => t.Hours)** }).ToList();
抱歉,我的第一反应不正确。
你LINQ查询是正确的,除了最后 - 你正在使用e ...你需要引用你选择的项目... 所以你需要在你的lambda表达式中使用t e
答案 1 :(得分:0)
我把它写成评论,但它应该是一个答案,这是mySQL与LinQ中确认的错误。是否有另一种方法使用解决方法查询相同的东西,使用实体框架,使用对象查询或直接sql或其他东西:
var errandQuery = (from t in db.TimereportSet
group t by new { t.Errand.Name, t.Date } into g
select new ErrandTime {
Date = g.Key.Date,
Value = g.Sum(e => e.Hours)}).ToList();
或者我应该为这个问题创建一个新帖子吗?