多くの人が、テーブルをメンバーシップ プロバイダーのテーブルに直接関連付けないでくださいと言っています。
しかし、これはどのように解決できるかというシナリオです:
- メンバーシップには 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:各従業員(医師または秘書)は、他のサイトのユーザーがログインするのと同じように、登録されたアカウントを持っている必要があります。後でメンバーシッププロバイダーを変更する可能性があるため、従業員とメンバーシップテーブルの間に直接関係を作るべきではないようです. では、従業員はどのようにしてアカウントを持つことができるのでしょうか?