【发布时间】:2019-09-16 11:33:01
【问题描述】:
假设我有一个用户域实体。我想通过(指纹)一组属性来识别这个用户,例如 IP、电子邮件、电话、用户代理。现在,由于根据 DDD 原则,指纹不能是实体,所以我将其定义为 ValueObject。每次当用户尝试进行交易时,我都会查找匹配的指纹以将用户与请求相关联。
Ef core 建议我们使用 OwnsMany() 作为 ValueObjects。我的问题是这个拥有实体的集合会立即加载而没有任何分页。我可能每页加载 100 个用户,每个用户可能有数百个指纹,因为每次 IP 或用户代理更改时,我都必须创建一个新用户。
我的问题是
有没有办法对这些指纹进行分页?我做不到,因为存储库仅对聚合根有限制。
我可以在对象超过 1k 的情况下实际使用 OwnsMany ValueObjects 吗?
如果没有,我该如何解决这个问题?
【问题讨论】:
-
OwnsMany()不适用于 ValueObjects。它用于聚合——应该以原子方式加载和保存的实体图。
标签: c# domain-driven-design ef-core-2.2