【问题标题】:c#Repository pattern: One repository per subclass?c#Repository 模式:每个子类一个存储库?
【发布时间】:2011-01-31 21:57:48
【问题描述】:

我想知道您是否会为域模型的每个子类创建一个存储库。 例如有两个类:

公共类人 { 公共虚拟字符串 GivenName { 设置;得到; } 公共虚拟字符串 FamilyName { 设置;得到; } 公共虚拟字符串 EMailAdress { 设置;得到; } } 公共类客户:人 { 公共虚拟日期时间注册日期{获取;放; } 公共虚拟字符串密码{获取;放; } }

您是要同时创建 PersonRepository 和 CustomerRepository 还是只创建一个 PersonRepository 来执行与客户相关的查询?

【问题讨论】:

    标签: c# repository-pattern


    【解决方案1】:

    这实际上取决于您的域的工作方式。通常,您的域中的每个 Aggregate Root(DDD 术语表示父实体,但不是传统的继承方式)都有一个存储库。

    如果您确实将 Person 和 Customer 都作为您的域的一部分使用,那么每个存储库都是合适的。存储库不需要有大量的实现,并且存储库通常可以共享很多它们的实现,尤其是在使用 ORM 时。

    This page 很好地介绍了存储库模式的目标。 Domain Driven Design 方法是一个很好的起点。

    【讨论】:

    • 仓库模式介绍的链接好像坏了。你能提供一个新的来源吗?
    猜你喜欢
    • 1970-01-01
    • 2017-11-17
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    相关资源
    最近更新 更多