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);
}
當我不按年齡過濾時,查看所有設施沒有問題,所以我不知道這個問題的原因是什么?
uj5u.com熱心網友回復:
問題是由多次使用 IEnumerable 引起的。IEnumerable 的可能多重列舉
您可以通過簡單地.ToList()在.Where(...)=>之后添加來修復它facilities = facilities.Where(...).ToList();。
uj5u.com熱心網友回復:
在這里,您嘗試將IQueryableFacility映射到IEnumerable.
為避免此錯誤,請嘗試將代碼更改為,
facilities = facilities.Where(facility => facility.Manager.Age == curr_Age).ToList();
閱讀更多:
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/323393.html
上一篇:在保持縱橫比的同時縮放SVG
