自定义表和成员关系之间的关系

本文关键字:关系 之间 成员 自定义 | 更新日期: 2023-09-27 17:54:14

我看到很多人说不要把你的表直接关联到会员提供程序的表。

但这是我该如何解决的场景:

  • 我使用sqlmembershipprovider作为会员。
  • 有一些办公室有人员,DoctorsSecretaries
  • 我有一个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
}