哪个最好?基于角色的应用程序或表格类型?

时间:2014-05-30 16:10:59

标签: asp.net sql-server database entity-framework

我最近正在开发一个需要2种用户类型的应用程序。医生和一般用户。它们共享一些属性(例如Username,Password,FirstName,LastName,Gender等)。

但是,医生还需要一些普通用户没有的其他属性。例如,医生可能有专业和WorkingPlace。我发现我应该在Entity Framework中使用Table Per Type Inheritance(TPT)。我创建了一个名为People的抽象基类,我也创建了两个子类名(RegisteredUser和Phisycian)继承自People抽象类。

我还发现ASP.NET中的默认成员资格提供程序不适合我的需要。所以我开发了一个CustomMembershipProvider类,它现在可以在Entity Framework中使用Table per Type继承。

但我认为使用Roles代替Table Per Type继承可能会更好。所以我想改变我的使用角色的应用程序。但问题是我如何处理Phisycians和普通用户的不同属性?我需要一个可以为多个用户角色处理多个配置文件字段的解决方案。例如,如果用户处于医师角色,则应具有Specialty和WorkingPlace属性。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

using Simple Membership with Roles怎么样?

您可以将自定义属性用于特定用户类型(Physicians,GeneralUsers),如此。

public class PhysicianProfile : ProfileBase
{
    public string WorkingPlace { 
        get { return this["WorkingPlace"]; }
        set { this["WorkingPlace"] = value; }
    }
}