自定义表和成员关系之间的关系
本文关键字:关系 之间 成员 自定义 | 更新日期: 2023-09-27 17:54:14
我看到很多人说不要把你的表直接关联到会员提供程序的表。
但这是我该如何解决的场景:
- 我使用sqlmembershipprovider作为会员。
- 有一些办公室有人员,
Doctors
和Secretaries
。 - 我有一个
doctors
的表,另一个secretaries
的表 -
每个医生/秘书都应该有一个登录帐号。
public class Doctor { public Doctor() { this.Expertises = new HashSet<Expertise>(); } [Key] public int DoctorId { get; set; } public string FirstName { get; set; } public string LastName { get; set; } [ForeignKey("Office")] public int OfficeId { get; set; } public virtual aspnet_Users User { get; set; } public virtual Office Office { get; set; } public virtual ICollection<Expertise> Expertises { get; set; } } public class Secretary { [Key] public int SecretaryId { get; set; } public string FirstName { get; set; } public string LastName { get; set; } // the rest.. [ForeignKey("Office")] public int OfficeId { get; set; } public virtual aspnet_Users User { get; set; } public virtual Office Office { get; set; } }
我想我可以在医生/秘书表和会员提供商的user
表之间建立关系,但这似乎不是一个好方法。
我该如何解决这个问题?
EDIT:每个员工(医生或秘书)应该像其他网站的用户一样有一个注册帐户登录,似乎我不应该直接在员工和会员表之间建立关系,因为可能我们稍后会更改会员提供者。那么员工如何拥有一个账户呢?
Have和Employee对象。
public class Employee
{
[Key]
public int EmployeeId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
// the rest..
[ForeignKey("Office")]
public int OfficeId { get; set; }
[ForeignKey("EmployeeType")]
public int EmployeeTypeId { get; set; }
public virtual aspnet_Users User { get; set; }
public virtual Office Office { get; set; }
}
public class EmployeeType
{
[Key]
public int EmployeeTypeId {get; set;}
public string EmployeeTypeDescription {get; set;} // Doctor or whatever
}