在 Entity Framework Core 5 中,可以使用 LINQ 查询语法或者原始 SQL 语句来查询数据。以下是使用原始 SQL 语句查询并聚合数据,并将其转换为指定 DTO 返回的示例:

  1. 创建一个 DTO 类,用于存储查询结果:
public class OrderSummaryDTO
{
    public int CustomerId { get; set; }
    public string CustomerName { get; set; }
    public int OrderCount { get; set; }
    public decimal TotalAmount { get; set; }
}
  1. 编写原始 SQL 查询语句并执行:
var query = @"SELECT c.Id AS CustomerId, c.Name AS CustomerName, COUNT(o.Id) AS OrderCount, SUM(o.Amount) AS TotalAmount 
              FROM Customers c
              INNER JOIN Orders o ON c.Id = o.CustomerId
              GROUP BY c.Id, c.Name";

var result = dbContext.OrderSummaryDTOs.FromSqlRaw(query).ToList();
  1. 将查询结果转换为 DTO 对象列表:
var orderSummaries = result.Select(r => new OrderSummaryDTO
{
    CustomerId = r.CustomerId,
    CustomerName = r.CustomerName,
    OrderCount = r.OrderCount,
    TotalAmount = r.TotalAmount
}).ToList();
  1. 返回 DTO 对象列表:
return orderSummaries;
Entity Framework Core 5:使用原始 SQL 查询并聚合数据转换为 DTO

原文地址: https://www.cveoy.top/t/topic/j0Oi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录