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();