首页 文章

有多个IdentityUser对象[重复]

提问于
浏览
0

这个问题在这里已有答案:

我有一个网站,我有客户和运营商 . 两者都需要注册 . 客户来自IdentityUser,并扩展了所有类型的客户信息字段,如地址和生日 . 对于运营商,我需要完全不同的信息,例如部门 .

首先,我有一个ApplicationUser对象(派生自IdentityUser),一个Customer对象,引用了ApplicationUser对象(1:1关系,未强制执行),还有一个Operator对象,同时引用了ApplicationUser对象 .

我想知道这是否正确 . 我想知道是否不可能有一个从IdentityUser派生的CustomerUser对象和一个也从IdentityUser派生的OperatorUser对象 .

基本上问题是如何使用AspNet Identity在MVC6 ASPNet5应用程序中处理几种类型的用户 . 我特别没有考虑如何使用角色,因为仍然没有回答如何处理不同的属性集 .

1 回答

  • 2

    你问的是构成与继承的经典问题 . 通常,这里最好的建议是更喜欢组合而不是继承 . 有时组合似乎不直观......我们的大脑倾向于“运营商是用户" and "客户是用户". But you can just as easily model the relationship as "具有用户凭证的客户/运营商(或其他系统角色)”的心智模型 .

    很难说一个比另一个更正确,但使用组合将更好地适应EF的ORM阻抗不匹配,而不是实体模型的类层次结构 . 在查询时,您必须更加小心地建模关系(方向性,基数等)和空引用 .

相关问题