我有一个查询,该查询返回一个IEnumerable
,用于显示值表。
我想通过模型的<H3/>
字段(DateTime
)对表进行分组(使用StartTime
元素。
我更改了模型以使用适当的泛型:
IEnumerable<IGrouping<DateTime, FooViewModel>> routes;
我通过FromSQL
查询填充模型:
routes = (IEnumerable<IGrouping<DateTime, FooViewModel>>)await _context.FooViewModels
.FromSql(@"SELECT ..."
)
.GroupBy(r => new { r.StartTime.Date })
.ToListAsync();
虽然代码通过了设计时要求,但在运行时却出现错误:
Unable to cast object of type 'System.Collections.Generic.List`1[System.Linq.IGrouping`2[<>f__AnonymousType5`1[System.DateTime],FooViewModel]]' to type 'System.Collections.Generic.IEnumerable`1[System.Linq.IGrouping`2[System.DateTime,FooViewModel]]'.
我做错了什么?
答案 0 :(得分:1)
由于错误正试图告诉您,因此您无法将匿名类型作为DateTime
传递。
由于视图接受DateTime
的分组,因此您需要将DateTime
lambda传递给GroupBy()
,以使其具有相同的类型。