domain-driven-design - 只读数据库 View 如何适应存储库模式?

标签 domain-driven-design repository-pattern aggregateroot sql-view

示例:您的数据库具有一个名为“CustomerOrdersOnHold”的SQL View 。该 View 返回特定客户和订单数据字段的混合过滤。您需要从应用程序中的此 View 中获取数据。对这种 View 的访问如何适应存储库模式?您将创建“CustomerOrdersOnHoldRepository”吗?这样的只读 View 是否被视为聚合根?

最佳答案

我宁愿分离读取的存储库,最好甚至将其名称更改为Finder或Reader,该存储库仅用于域用途而不是查询只读数据,您可以引用this articlethis来解释Finder分离形式存储库的用法。

我还建议将读取模型与写入模型体系结构CQRSthere分开

该体系结构使您即使在数据存储和事件源的使用方面也可以将读取模型与写入模型分开。

对于中间解决方案,您可以利用一些CQRS概念,而无需通过仅将存储库与查找程序分开来分离数据库的复杂性,请阅读此post

对于此类解决方案的样本(使用相同的数据库,但将查找者从表单存储库中分离出来),请检查this sample

关于domain-driven-design - 只读数据库 View 如何适应存储库模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7365913/

相关文章:

c# - 贫血领域模型和领域服务

domain-driven-design - 聚合根,他们应该负责删除子对象吗?

不同限界上下文聚合根之间通信的.net实现

domain-driven-design - 访问子类聚合成员

java - 内存数据网格中的细粒度与粗粒度域模型

domain-driven-design - DDD和数据导出系统

java - DDD 中的聚合对象

asp.net-mvc - 博客架构设计,使用MVC和DDD

laravel - 初始化数据库:transaction in Repository Pattern for Laravel

asp.net-mvc - 使用存储库 + 工作单元模式选择查询