したがって、基本的に、Person テーブルへの必要な外部キーを保持する Student テーブルがあります。次のようにクラスを設定しました。
class Person
{
public int PersonID { get; set; }
public string Phone_Number { get; set; }
public string Email { get; set; }
public string Address { get; set; }
public string First_Name { get; set; }
public string Last_Name { get; set; }
//navigation properties
public virtual Student Student { get; set; }
public override string ToString()
{
return Last_Name + ", " + First_Name;
}
}
class Student
{
public int StudentID { get; set; }
public DateTime Dob { get; set; }
public int PersonID { get; set; }
public int Student_TypeID { get; set; }
//navigation properties
[Required]
public virtual Person Person { get; set; }
}
以下のように新しい学生を追加しようとするたびに、個人への外部キーは 0 のままです。
Student student = new Student
{
Dob = dpStudentDob.Value,
Student_TypeID = (rdoStudentRegular.Checked) ? 1 : 2,
Person = new Person
{
First_Name = txtStudentFirstName.Text,
Last_Name = txtStudentLastName.Text,
Address = txtStudentAddress.Text,
Email = txtStudentEmail.Text,
Phone_Number = txtStudentPhoneNum.Text
}
};
using (var context = new MusicSchoolDB())
{
context.Students.Add(student);
context.SaveChanges();
}
何度生徒を追加しても、person の外部キーは 0 のままです。.
よろしくお願いします、J