EFCore Linq 无法对包含聚合或子查询的表达式执行聚合函数
EFCore Linq Cannot perform an aggregate function on an expression containing an aggregate or a subquery
我有一个 EFCore linq 查询,我试图获取单位总和,但抛出了异常。
这是结构。
var query = _jobRepository.Table;
我正在做一些过滤,没什么大不了的,然后我有包含。
query = query.Include(x => x.Plan)
.ThenInclude(o => o.Listing)
.ThenInclude(y => y.Product)
.ThenInclude(a => a.AssembledProducts);
在查询结束时,我想获得总和单位。
query.SumAsync(x => (x.Plan.Listing.Product.IsAssembled
? x.Plan.Listing.Product.AssembledProducts.Sum(o => o.Qty)
: 1) * (x.Quantity * x.Plan.PackOf));
但我抛出异常无法对包含聚合或子查询的表达式执行聚合函数。
有什么办法可以解决这个问题?
尝试将其替换为以下内容:
List<decimal> valuesList = await query.Select(x => (x.Plan.Listing.Product.IsAssembled
? x.Plan.Listing.Product.AssembledProducts.Sum(o => o.Qty) :1 )
* (x.Quantity * x.Plan.PackOf)).ToListAsync();
decimal sumOfValues = valuesList.Sum();
我有一个 EFCore linq 查询,我试图获取单位总和,但抛出了异常。
这是结构。
var query = _jobRepository.Table;
我正在做一些过滤,没什么大不了的,然后我有包含。
query = query.Include(x => x.Plan)
.ThenInclude(o => o.Listing)
.ThenInclude(y => y.Product)
.ThenInclude(a => a.AssembledProducts);
在查询结束时,我想获得总和单位。
query.SumAsync(x => (x.Plan.Listing.Product.IsAssembled
? x.Plan.Listing.Product.AssembledProducts.Sum(o => o.Qty)
: 1) * (x.Quantity * x.Plan.PackOf));
但我抛出异常无法对包含聚合或子查询的表达式执行聚合函数。
有什么办法可以解决这个问题?
尝试将其替换为以下内容:
List<decimal> valuesList = await query.Select(x => (x.Plan.Listing.Product.IsAssembled
? x.Plan.Listing.Product.AssembledProducts.Sum(o => o.Qty) :1 )
* (x.Quantity * x.Plan.PackOf)).ToListAsync();
decimal sumOfValues = valuesList.Sum();