【发布时间】:2018-03-27 21:00:25
【问题描述】:
在我的 .net Core 2.0 Razor Pages 项目中,我声明了一个这样的列表,其中 MyData 是链接到实体框架数据集的模型:
public IList<MyData> MyData { get; set; }
为简单起见,假设我的数据如下所示:
ID | UserName | LogOn
1 | User1 | 25/03/2018 12:54
2 | User2 | 25/03/2018 09:43
3 | User1 | 24/03/2018 18:23
4 | User3 | 24/03/2018 08:16
5 | User2 | 23/03/2018 17:12
..等
然后在我的 OnGet() 方法中,我知道我可以查询它以生成一个可以循环遍历的列表,如下所示:
IQueryable<MyData> MyDataIQ = from i in _context.MyData select i;
MyData = await MyDataIQ.ToListAsync();
如果我想返回一个按用户名分组的列表,其中包含该用户名的所有出现次数,我的 LINQ 查询会是什么样子?
我试过了:
IQueryable<MyData> MyDataIQ = from i in _context.MyData group i by i.UserName into grp select new {key = grp.Key, cnt = grp.Count()};
但这只会给我一个类型转换错误。
我有原始数据,我只想在以这种方式分组的视图上显示它。
我是 Core 2.0 和 Linq 的新手,所以任何帮助都会非常有用。
【问题讨论】:
-
您拥有的语句的返回类型不会是 'IQueryable
'。它将是一个`IEnumerable'。尝试用 'var' 替换 'IQueryable '。
标签: c# entity-framework linq asp.net-core