【发布时间】:2014-01-27 12:34:00
【问题描述】:
我是 Repository Pattern 的新手,并试图在我的项目中使用它。我的项目中有以下实体:
- 用户资料
- 用户类型A
- 用户类型B
- 用户类型C
我有 3 种类型的用户和 UserProfile,其中包含有关这三种用户的一般信息,例如密码、用户名等。还有许多其他实体,每种类型的用户与其他实体有不同类型的关系。现在我决定为此创建以下存储库模式:
public class UserProfileRepository
{
....
}
public class UserTypeAReository: UserProfileRepository
{
.....
}
public class UserTypeBReository: UserProfileRepository
{
.....
}
public class UserTypeCReository: UserProfileRepository
{
.....
}
所以我想知道这(存储库继承)是否符合良好做法,或者是否有其他更好的方法来做到这一点?
编辑
存在 1 到 0..1 的共享主键关系 b/w UserProfile 和(UserTypeA、UserTypeB 和 UserTypeC)。
【问题讨论】:
-
是的,这很好。尤其是因为您将 UserProfile 的属性存储在单独的表中,从而使事情保持干燥。尽管最好在codereview.stackexchange.com 上问这个问题 注意:没有必要在每个类名中都指定“存储库”,你应该只在有用的地方使用模式,不要把自己锁在一个中。
-
如果你的用户类型是不连续的,我会去继承,让 ef 处理所有必要的事情。如果不是,您的方法似乎很好。
标签: c#