使用AutoMapper时遇到问题
我的代码:
public static IQueryable<IGrouping<Int64, GroupTimeSheetViewModel>> ToListGroupViewModel(this IQueryable<IGrouping<Int64, GroupTimeSheet>> entity)
{
return Mapper.Map<IQueryable<IGrouping<Int64, GroupTimeSheet>>, IQueryable<IGrouping<Int64, GroupTimeSheetViewModel>>>(entity);
}
当我运行我的代码时,我收到错误:
值“System.Collections.Generic.List
1[PG.Admin.Models.TimeSheetHeaders.GroupTimeSheetViewModel]" is not of type "System.Linq.IGrouping
2 [System.Int64,PG.Admin.Models.TimeSheetHeaders.GroupTimeSheetViewModel]”并且不能在此通用集合中使用。 参数名称:值
答案 0 :(得分:2)
AutoMapper无法直接映射可查询对象。如果我是你,我会使用AutoMapper's LINQ projection capabilities。它使用LINQ来构建Select投影。这样,你得到的LINQ就像:
dbContext.GroupTimeSheets
.GroupBy(ts => ts.Something)
.Project().To<GroupTimeSheetViewModel>()
.ToListAsync();