我最近正在开发一个需要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属性。
任何人都可以帮助我吗?
答案 0 :(得分:0)
using Simple Membership with Roles怎么样?
您可以将自定义属性用于特定用户类型(Physicians,GeneralUsers),如此。
public class PhysicianProfile : ProfileBase
{
public string WorkingPlace {
get { return this["WorkingPlace"]; }
set { this["WorkingPlace"] = value; }
}
}