如何解决ASPBoilerplate - .Net Core 3 错误 - 以可翻译的形式重写查询
我试图显示属于用户所属的任何组织单位的实体的所有记录。我在 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 举报,一经查实,本站将立刻删除。