C#仓储模式:每个子类一个仓储?

5
我想知道您是否会为域模型的每个子类创建一个存储库。 例如,有两个类:
公共类 Person { 公共虚 String GivenName { set; get; } 公共虚 String FamilyName { set; get; } 公共虚 String EMailAdress { set; get; } }
公共类 Customer : Person { 公共虚 DateTime RegistrationDate { get; set; } 公共虚 String Password { get; set; } }
您会创建PersonRepository和CustomerRepository还是只创建PersonRepository并能够执行与Customer相关的查询?
1个回答

3

这取决于你的域名是如何工作的。通常,你的每个聚合根(DDD术语,意思是父实体,但不是传统继承方式)都需要一个存储库。

如果你真的将Person和Customer视为你域的一部分,则每个人都需要一个存储库。存储库不需要有很重的实现,当使用ORM时,存储库通常可以共享很多实现。

这个页面是介绍存储库模式目标的好材料。领域驱动设计方法是一个好的起点。


仓储模式介绍的链接似乎失效了。你能提供一个新的来源吗? - Daniel García Rubio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接