过滤时Auto Mapper映射异常

Auto Mapper Mapping Exception When Filtering

这里是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);
}

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

问题是由多次使用 IEnumerable 引起的。 Possible multiple enumeration of IEnumerable

您可以通过在 .Where(...) => facilities = facilities.Where(...).ToList();.

之后添加 .ToList() 来修复它