Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#存储库模式:每个子类一个存储库?_C#_Repository Pattern - Fatal编程技术网

c#存储库模式:每个子类一个存储库?

c#存储库模式:每个子类一个存储库?,c#,repository-pattern,C#,Repository Pattern,我想知道您是否会为域模型的每个子类创建一个存储库。 例如,有两类: public class Person { public virtual String GivenName { set; get; } public virtual String FamilyName { set; get; } public virtual String EMailAdress { set; get; } } public class Customer : Person {

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

public class Person { public virtual String GivenName { set; get; } public virtual String FamilyName { set; get; } public virtual String EMailAdress { set; get; } } public class Customer : Person { public virtual DateTime RegistrationDate { get; set; } public virtual String Password { get; set; } } 公共阶层人士 { 公共虚拟字符串GivenName{set;get;} 公共虚拟字符串FamilyName{set;get;} 公共虚拟字符串emailAddress{set;get;} } 公共类客户:个人 { 公共虚拟日期时间注册日期{get;set;} 公共虚拟字符串密码{get;set;} }
您是同时创建PersonRepository和CustomerRepository,还是只创建PersonRepository,它还可以执行与客户相关的查询?

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

如果您真的将个人和客户作为域的一部分来处理,那么为每一个人建立一个存储库是合适的。存储库不需要繁重的实现,存储库通常可以共享很多实现,尤其是在使用ORM时


是对存储库模式目标的一个很好的介绍。该方法是一个很好的起点。

指向存储库模式介绍的链接似乎已断开。你能提供一个新的来源吗?