Entity Framework Core 6 按条件分组查询并转换为自定义对象
Entity Framework Core 6 分组查询并转换为自定义对象
本文将介绍如何使用 Entity Framework Core 6 按条件对数据进行分组,并将结果转换为自定义对象。
场景描述
假设我们有如下两个类:
public class Order
{
public long Id { get; set; }
public long StoreId { get; set; }
}
public class OrderGroup
{
public long StoreId { get; set; }
public List<Order> Orders { get; set; }
}
我们希望从数据库中查询所有订单,并按 Order.StoreId 分组,最终得到一个 List<OrderGroup> 类型的结果。
代码实现
可以使用 LINQ 语句和 GroupBy 方法来实现:
var orderGroups = dbContext.Orders
.GroupBy(o => o.StoreId)
.Select(g => new OrderGroup
{
StoreId = g.Key,
Orders = g.ToList()
})
.ToList();
其中:
dbContext是 Entity Framework Core 的DbContext实例。Orders是表示订单的DbSet属性。
代码解释:
- 使用
GroupBy(o => o.StoreId)方法按Order.StoreId对订单进行分组。 - 使用
Select方法将每个分组转换为一个OrderGroup对象。g.Key表示分组的键,这里是StoreId。g.ToList()将分组内的所有订单转换为List<Order>。
- 使用
ToList()方法将结果转换为List<OrderGroup>类型。
总结
通过上述代码,我们可以方便地使用 Entity Framework Core 6 按条件进行分组查询,并将结果转换为自定义对象。这种方法可以提高代码的可读性和可维护性,使代码更加简洁易懂。
原文地址: https://www.cveoy.top/t/topic/jnBk 著作权归作者所有。请勿转载和采集!