LINQ小组不工作

时间:2011-02-17 21:19:02

标签: c# mysql linq

我在这个论坛上通过回复阅读了很多小组,但我还是要问:

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。

2 个答案:

答案 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();

或者我应该为这个问题创建一个新帖子吗?