C# 我们可以在另一个存储库c中继承存储库吗#
我不熟悉存储库模式,并尝试在我的项目中使用它。我的项目中有以下实体:C# 我们可以在另一个存储库c中继承存储库吗#,c#,C#,我不熟悉存储库模式,并尝试在我的项目中使用它。我的项目中有以下实体: 用户配置文件 用户类型 用户类型B 用户类型 我有3种类型的用户和UserProfile,其中包含关于这三种用户的一般信息,如密码、用户名等。还有许多其他实体,每种类型的用户与其他实体有不同类型的关系。现在,我决定为此创建以下存储库模式: public class UserProfileRepository { .... } public class UserTypeAReository: UserProfileRep
- 用户配置文件
- 用户类型
- 用户类型B
- 用户类型
public class UserProfileRepository
{
....
}
public class UserTypeAReository: UserProfileRepository
{
.....
}
public class UserTypeBReository: UserProfileRepository
{
.....
}
public class UserTypeCReository: UserProfileRepository
{
.....
}
所以我想知道这(存储库继承)是在良好的实践中实现的,还是有其他更好的方法来实现这一点
编辑
有一个1到0..1的共享主键关系b/w UserProfile和(UserTypeA、UserTypeB和UserTypeC)。根据您试图实现的目标,您还可以使用
接口
或抽象类
如果您希望所有类都有一个公共契约,但每个方法的实现都不同,那么您可以使用接口
,这将提供更大的灵活性,因为您有多接口继承v的单类继承,使用C
使用抽象类
,可以设置方法和实现,但允许派生类重写基本实现
这篇文章也可能有帮助:是的,这很好。特别是因为您将UserProfile的属性存储在一个单独的表中,所以这可以保持干燥。尽管在注释中问这个问题可能更好:没有必要在每个类名中指定“Repository”,您应该只在有用的地方使用模式,不要将自己锁定在一个模式中。如果您的用户类型是disjunkt,我会选择继承,并让ef处理所有必要的事情。如果不是的话,你的方法看起来不错。也看看这个