Entity Framework Core 5:使用原始 SQL 查询并聚合数据转换为 DTO
在 Entity Framework Core 5 中,可以使用 LINQ 查询语法或者原始 SQL 语句来查询数据。以下是使用原始 SQL 语句查询并聚合数据,并将其转换为指定 DTO 返回的示例:
- 创建一个 DTO 类,用于存储查询结果:
public class OrderSummaryDTO
{
public int CustomerId { get; set; }
public string CustomerName { get; set; }
public int OrderCount { get; set; }
public decimal TotalAmount { get; set; }
}
- 编写原始 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();
- 将查询结果转换为 DTO 对象列表:
var orderSummaries = result.Select(r => new OrderSummaryDTO
{
CustomerId = r.CustomerId,
CustomerName = r.CustomerName,
OrderCount = r.OrderCount,
TotalAmount = r.TotalAmount
}).ToList();
- 返回 DTO 对象列表:
return orderSummaries;
原文地址: https://www.cveoy.top/t/topic/j0Oi 著作权归作者所有。请勿转载和采集!