这里是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>被多次使用引起的。IEnumerable
的可能多重枚举您可以通过在.Where(...)
=>之后添加.ToList()
来修复它。facilities = facilities.Where(...).ToList();
.