C# beginner here, I want to only see the facilities where the manager has the same age as the current user.
For some reason when I publish my site with this code and try to view facilities, I get a very long error stating that:
***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[ ***
Here is the function:
[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);
}
I have no issue viewing all facilities when I do not filter by age so I have no idea what could be the cause of this issue?
Issue is caused by IEnumerable being used multiple times. Possible multiple enumeration of IEnumerable
You can fix it by simply adding .ToList()
after .Where(...)
=> facilities = facilities.Where(...).ToList();
.