首页 > 解决方案 > 过滤时自动映射器映射异常

问题描述

C#初学者在这里,我只想看到经理与当前用户年龄相同的设施。

出于某种原因,当我使用此代码发布我的网站并尝试查看设施时,我收到一个很长的错误,指出:

***Unable to retrieve facilities from the server. Errors: "error: AutoMapper.AutoMapperMappingException: Error mapping types. Mapping types: WhereListIterator`1 -> IEnumerable`1 System.Linq.Enumerable+WhereListIterator`1[ ***

这是功能:

[HttpGet]
public async Task<IACtionResult> GetFacilities(int page, int pagesize){

var facilities = await _facilityService.GetAllfacilitiesAsync(page, pagesize);

var curr_Age = (int)HttpContext.User.GetAge();

facilities = facilities.Where(facility => facility.Manager.Age == curr_Age);

var model = _mapper.Map<IEnumerable<FacilityViewModel>>(facilities);

return OK(model);
}

当我不按年龄过滤时,查看所有设施没有问题,所以我不知道这个问题的原因是什么?

标签: c#.netautomappernullreferenceexception

解决方案


问题是由多次使用 IEnumerable 引起的。IEnumerable 可能的多重枚举

您可以通过简单地在=>.ToList()之后添加来修复它。.Where(...)facilities = facilities.Where(...).ToList();


推荐阅读