我的应用程序将有3种类型的用户,例如IndividualUser,BusinessUser和AdminUser。每个模型可能有相当多的不同属性。
我看过几篇帖子(1,2),主张从MVC5模板附带的ApplicationUser类派生这些类。像这样:
IndividualUser : ApplicationUser
{
string FirstName {get;set;}
string LastName {get;set;}
}
但是......我知道这种设置会导致所有用户类型在数据库中共享同一个表。因此,当某些用户类型具有必须不可为空的不同属性(例如DateTime字段)时,我预计会出现问题。
因此,我正在考虑将ApplicationUser类用作更高级用户模型的属性。像这样:
IndividualUser
{
ApplicationUser ApplicationUser {get;set;}
string FirstName {get;set;}
string LastName {get;set;}
}
这似乎对我来说更合适,因为3种用户类型中的每一种都有许多不同的属性。然而,我从未见过推荐这种方法 - 我想知道这是否有原因?
我对使用MVC5中的成员资格并不是特别有信心,所以我不确定每种方法的后果或含义是什么。