Asp.net core EF核心5与Sum

Asp.net core EF核心5与Sum,asp.net-core,entity-framework-core,Asp.net Core,Entity Framework Core,回购模型类别: public class TransactionDayReport { public Decimal TotalAmount { get; set; } public ICollection<TransactionResponse> TransactionResponses { get; set; } = null!; } 这是我的存储库方法 public async Task<IEnumerable<Transaction>>

回购模型类别:

public class TransactionDayReport
{
    public Decimal TotalAmount { get; set; }
    public ICollection<TransactionResponse> TransactionResponses { get; set; } = null!;
}
这是我的存储库方法

public async Task<IEnumerable<Transaction>> SearchTransactionAsync(SearchTransaction search)
{
    var query = _context.Transactions
                        .Include(t => t.Branch)
                        .Include(t => t.Customer)
                        .AsQueryable();    

    if (search.CIN != null)               
        query = query.Where(t => t.Customer.CIN.Contains(search.CIN));

    if (search.ValueDate != null)
        query = query.Where(t => t.ValueDate.Date == search.ValueDate.Date);

    return await query.ToListAsync();
}
服务方式:

public async Task<TransactionResponse> SearchTransactions(SearchTransaction search)
{
    var transactionList = await _unitOfWork.Transactions.SearchTransactionAsync(search);
    var mapped = ObjectMapper.Mapper.Map<TransactionDayReport>(transactionList);
    return mapped;
}
我需要发送服务类的总金额


但我不知道如何将加法和加到我的dto中。请问有人能提出一个解决方案吗?谢谢

在DB上计算总和的唯一方法是在DB上运行另一个查询,除非可以重新写入DB查询以返回总和和数据

如果您对计算客户机上的金额没有意见,那么它就更简单了。以下是我可以想到的一些选择:

您可以配置映射器来设置总和。 您可以在SearchTransactions中执行映射后设置总和。 您可以更改DTO以计算总和,在这种情况下,它将不再是POCO,但我认为这也是一种合理的方法: 公共类TransactionDayReport { 私有小数?\u totalAmount=null; 公共十进制总数{get{ 如果_totalAmount不为null,则返回_totalAmount;//新的C 9功能: _totalAmount=//在此计算总金额 返回总金额; } 公共ICollection TransactionResponses{get;set;}=null!; }
在DB上计算总和的唯一方法是在DB上运行另一个查询,除非可以重新写入DB查询以返回总和和数据

如果您不介意在客户机上计算金额,则更简单。以下是我可以想到的一些选项:

您可以配置映射器来设置总和。 您可以在SearchTransactions中执行映射后设置总和。 您可以更改DTO以计算总和,在这种情况下,它将不再是POCO,但我认为这也是一种合理的方法: 公共类TransactionDayReport { 私有小数?\u totalAmount=null; 公共十进制总数{get{ 如果_totalAmount不为null,则返回_totalAmount;//新的C 9功能: _totalAmount=//在此计算总金额 返回总金额; } 公共ICollection TransactionResponses{get;set;}=null!; }
在DB上计算总和的唯一方法是在DB上运行另一个查询,除非可以重新写入DB查询以返回总和和数据。--如何将总和包含在ef core中?@Glen如果您确实想对DB运行另一个查询…您可以执行查询。Sumt=>t.propertyYouwantSumOf in SearchTransaction同步另外,计算数据库上的总和是在数据库上运行另一个查询,除非可以重新写入数据库查询以返回总和和数据。--如何将总和包含在ef core中?@Glen如果确实要对数据库运行另一个查询,可以执行查询。Sumt=>t.PropertyYouWantTheSumOf in SearchTransactionSync