尝试在 LINQ 中使用 groupby 时出现网格问题
当尝试使用 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。
我该如何解决这个问题?
When trying to use GROUPBY I get an error saying a field 'date1' is not found on selected resource.
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();
So, when I try to bind with query it works perfectly, but query2 yields the error
field date1 not found on selected datasource.
How can I fix this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
分组依据返回名称与原始选择不同的列。
您可以执行以下操作来“出于教育目的”查看它。
创建一个新的 Grid2 并将其与自动列映射一起使用。将 Query2 绑定到这个 Grid2,您将看到结果。
The group by returns columns with different names than the original select.
You can do the following to see it "for educational purpose".
create a new Grid2 and use it with automatic columnmapping. Bind Query2 to this Grid2 and you will see the result.
因为您按月分组,所以现在只有月份字段作为键,以及分组项目的集合。如果您想要数据源上有更多字段,则需要在 date1 字段上使用聚合函数。
例如这样:
希望这有帮助
Because you grouped by month, now you have only month field as a key, and collection of grouped items. If you want more fields on data source you need to use aggregate function on date1 field.
For example like this:
hope this helps