私は現在、ユーザー アカウントの SimpleMembership をセットアップしようとしている ASP.NET MVC4 アプリケーションを持っています。これまでのところ、EF コードの最初の移行でデータベースを自動的にセットアップし、データベースに SimpleMembership テーブルを生成するようにしました。
現在ログインしているユーザーと私が作成した特定のエンティティとの間に関係があるように設定したいと思います。学生と教師の 2 種類のユーザーがいます。これらは両方とも、基本「ユーザー」クラスから派生しています。
例: 学生がログインすると、EF によって作成された「UserProfile」テーブルとは別の学生テーブルに保存されているアカウントやその他のデータなどにアクセスできます。
これを実装するためにいくつかの調査を行いましたが、ユーザーの外部キー属性として「UserId」を使用してリンクを作成する必要があると考えています。しかし、その後、実際に情報を別のテーブルに格納できるようにするために必要な次の手順は何ですか?
UserId キーを使用して SimpleMembership テーブルと Student テーブルのデータを結合するための最善の方法は何ですか?
これは、2 つの関係を設定する正しい方法であると私が信じているユーザー クラスです。
ユーザー
public class User
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
[Display(Name = "First Name")]
[Required(ErrorMessage = "First name is required.")]
[MaxLength(50)]
public virtual string FirstName { get; set; }
[Display(Name = "Last Name")]
[Required(ErrorMessage = "Last name is required.")]
[MaxLength(50)]
public virtual string LastName { get; set; }
}
学生
public class Student : User
{
public virtual ICollection<Account> Accounts { get; set; }
}
先生
public class Teacher : User
{
public virtual ICollection<Student> Students { get; set; }
public virtual ICollection<Classroom> Classrooms { get; set; }
}