示例:您的数据库具有一个名为“CustomerOrdersOnHold”的SQL View 。该 View 返回特定客户和订单数据字段的混合过滤。您需要从应用程序中的此 View 中获取数据。对这种 View 的访问如何适应存储库模式?您将创建“CustomerOrdersOnHoldRepository”吗?这样的只读 View 是否被视为聚合根?
最佳答案
我宁愿分离读取的存储库,最好甚至将其名称更改为Finder或Reader,该存储库仅用于域用途而不是查询只读数据,您可以引用this article和this来解释Finder分离形式存储库的用法。
我还建议将读取模型与写入模型体系结构CQRS和there分开
该体系结构使您即使在数据存储和事件源的使用方面也可以将读取模型与写入模型分开。
对于中间解决方案,您可以利用一些CQRS概念,而无需通过仅将存储库与查找程序分开来分离数据库的复杂性,请阅读此post。
对于此类解决方案的样本(使用相同的数据库,但将查找者从表单存储库中分离出来),请检查this sample
关于domain-driven-design - 只读数据库 View 如何适应存储库模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7365913/