【发布时间】:2018-03-27 17:47:15
【问题描述】:
根据微软 (https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/microservice-ddd-cqrs-patterns/infrastructure-persistence-layer-implemenation-entity-framework-core) 来封装域行为私有属性和只读集合,如下所示:
private readonly List<OrderItem> _orderItems;
public IReadOnlyCollection<OrderItem> OrderItems => _orderItems;
您可以像这样通过封装的订单项获取订单:
public async Task<Order> GetAsync(int orderId)
{
var order= await _context.Orders.FindAsync(orderId);
if (order != null)
{
await _context.Entry(order)
.Collection(i => i.OrderItems)
.LoadAsync();
}
return order;
}
但是,如果订单商品本身已经封装了如下树的列表:
供应商 -> 目录 -> 目录项
如何获取 CatalogItems 集合?
【问题讨论】:
-
使用通常的 EF Core
Include/ThenInclude?没有具体的 DDD。 -
好的。我只是想知道是否有 Collection() 方法的变体来完成此操作。