过滤时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()
来修复它
这里是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()
来修复它