Asp.net mvc 自动映射器无法映射IEnumerable<;T>;

Asp.net mvc 自动映射器无法映射IEnumerable<;T>;,asp.net-mvc,ienumerable,automapper,Asp.net Mvc,Ienumerable,Automapper,这是我得到的例外: Missing type map configuration or unsupported mapping. Mapping types: CompanyViewModel -> Company Razor.Sample.ViewModels.CompanyViewModel.CompanyViewModel -> Model.Company Destination path: CompanyListViewModel.Companies.Companies.

这是我得到的例外:

Missing type map configuration or unsupported mapping.

Mapping types:
CompanyViewModel -> Company
Razor.Sample.ViewModels.CompanyViewModel.CompanyViewModel -> Model.Company

Destination path:
CompanyListViewModel.Companies.Companies.Companies0[0]

Source value:
Razor.Sample.ViewModels.CompanyViewModel.CompanyViewModel
当我运行此代码时:

var companyViewModels = Mapper.Map<IEnumerable<Company>, IEnumerable<CompanyViewModel>>(companies);
var companyListViewModel = Mapper.Map<IEnumerable<CompanyViewModel>, CompanyListViewModel>(companyViewModels);
var companyViewModels=Mapper.Map(公司);
var companyListViewModel=Mapper.Map(companyViewModels);
这是我的映射器配置文件:

CreateMap<IEnumerable<CompanyViewModel>, CompanyListViewModel>()
    .ForMember(dest => dest.TopRankings, o => o.MapFrom(src => src.Select(c => c.TopRanking)))
    .ForMember(dest => dest.TotalCompaniesWithOpenPositions,
        o => o.MapFrom(src => src.Count(c => c.HasOpenPositions == true)))
    .ForMember(dest => dest.TotalEmployees,
        o => o.MapFrom(src => src.Select(c => c.NumberOfEmployees).Sum<int>(s => s)))
    .ForMember(dest => dest.Companies, o => o.MapFrom(src => src.Select(c => c)));
CreateMap()
.ForMember(dest=>dest.TopRankings,o=>o.MapFrom(src=>src.Select(c=>c.TopRanking)))
.ForMember(dest=>dest.totalcompanyswithopenpositions,
o=>o.MapFrom(src=>src.Count(c=>c.HasOpenPositions==true)))
.ForMember(dest=>dest.TotalEmployees,
o=>o.MapFrom(src=>src.Select(c=>c.NumberOfEmployees.Sum(s=>s)))
.ForMember(dest=>dest.companys,o=>o.MapFrom(src=>src.Select(c=>c));

我知道CreateMap不应该有
IEnumerable
,但是我如何从每个公司的ViewModel及其属性映射来创建一个具有LINQ的和,例如,并将其分配给
dest.TotalEmployees
?我需要配置文件中的可枚举项,而不是调用
.Map()

的mvc控制器中的可枚举项,使
CompanyViewModels
成为
CompanyListViewModel
的属性,并在视图模型中进行聚合,而不是通过AutoMapper。我一直在想,我应该将这些逻辑放在ViewModel或AutoMapper中。无论在哪种情况下,它都会使另一个工具/对象变得毫无用处。好吧,适当地使用任一工具/对象。AM非常适合
公司、公司视图模型
映射。它并不用于聚合对象列表(仅基于某些命名约定的嵌套集合)。