问题描述
我试图显示属于用户所属的任何组织单位的实体的所有记录。我在 Where 子句中收到以下错误。我可以注释掉 where 子句,一切正常。显然这并不理想,但我知道错误来自那条线。我明白发生了什么,但我不知道如何解决。
错误如下:要么以可翻译的形式重写查询,要么通过插入对“AsEnumerable”、“AsAsyncEnumerable”、“ToList”或“ToListAsync”的调用来显式切换到客户端评估.
感谢任何帮助。
这是我的代码:
public async Task<PagedResultDto<GetCouponForViewDto>> GetAll(GetAllCouponsInput input)
{
var user = await _userManager.GetUserByIdAsync(AbpSession.UserId??0);
var organizationUnits = _userManager.GetorganizationUnits(user);
var organizationUnitCodes = organizationUnits.Select(ou => ou.Code);
var filteredCoupons = _couponRepository.GetAll()
.WhereIf(!string.IsNullOrWhiteSpace(input.Filter),e => false || e.Description.Contains(input.Filter))
.WhereIf(!string.IsNullOrWhiteSpace(input.DescriptionFilter),e => e.Description == input.DescriptionFilter);
var pagedAndFilteredCoupons = filteredCoupons
.OrderBy(input.sorting ?? "id asc")
.PageBy(input);
var coupons = from o in pagedAndFilteredCoupons
join organizationUnit in _organizationUnitRepository.GetAll() on
o.OrganizationUnitId equals organizationUnit.Id
// ** **This next line is where the error is coming from** ** //
where organizationUnitCodes.Any(code => organizationUnit.Code.StartsWith(code))
select new GetCouponForViewDto()
{
Coupon = new CouponDto
{
Description = o.Description,Id = o.Id
}
};
var totalCount = await coupons.CountAsync();
return new PagedResultDto<GetCouponForViewDto>(
totalCount,await coupons.ToListAsync()
);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)