0

我看到很多人说不要将您的表格直接关联到会员提供者的表格。

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

  • 我使用 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与会员提供者表之间建立关系,但这似乎不是一个好方法。

我该如何解决这个问题?

编辑:每个员工(医生或秘书)都应该像其他网站的用户一样拥有一个注册帐户才能登录,看来我不应该直接在员工和会员表之间建立关系,因为也许我们以后会更改会员提供者。那么员工如何拥有账户呢?

4

1 回答 1

0

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
}
于 2013-01-18T22:44:21.903 回答