尝试使用GROUPBY时,我收到一条错误消息,指出在所选资源上找不到字段'date1'。
var query = (from a in db.Dates
from b in db.Facts
where a.Count_Key == b.Date_key
select new{
a.Date1,
a.Month,
b.Fact_key
});
var query2 = query.GroupBy(x => x.Month );
Grid1.DataSource = query2;
Grid1.DataBind();
因此,当我尝试使用查询进行绑定时,它可以正常工作,但是query2会产生错误
在所选数据源上找不到字段date1。
我该如何解决这个问题?
答案 0 :(得分:0)
由于您按月分组,现在您只有月份字段作为键,以及分组项目的集合。如果您想在数据源上有更多字段,则需要在date1字段上使用聚合函数。
例如:
var query2 = (from q in query
group q by q.Month into g
select new
{
Month = g.Key,
Date = g.Select(gg=>gg.Date1).Max //or you can use first here etc.
}).ToList()
希望这会有所帮助
答案 1 :(得分:0)
group by返回名称与原始select不同的列。
您可以执行以下操作以“用于教育目的”。
创建一个新的Grid2并将其与自动列映射一起使用。将Query2绑定到此Grid2,您将看到结果。