First of all I saw Implementing Zero Or One to Zero Or One relationship in EF Code first by Fluent API.
I want implement 0..1(Student):0..1(GraduationWork) in my MVC 4 project.
I have POCO classes:
public class GraduationWork
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int GraduationWorkID { get; set; }
[Display(Name = "Student")]
public int? StudentID { get; set; }
[ForeignKey("StudentID")]
public virtual Student Student { get; set; }
....
}
and
public class Student : UserProfile
{
[Required]
public int? GraduationWorkID { get; set; }
[ForeignKey("GraduationWorkID")]
public virtual GraduationWork GraduationWork { get; set; }
....
}
and there is part of my OnModelCreating:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Student>().HasOptional(x => x.GraduationWork)
.WithOptionalPrincipal(s => s.Student)
.Map(x => x.MapKey("StudentID"));
modelBuilder.Entity<GraduationWork>().HasOptional(x => x.Student)
.WithOptionalPrincipal(g => g.GraduationWork)
.Map(x => x.MapKey("GraduationWorkID"));
}
I think maybe is there problem with inheritance, but I don´t know... Would you be so kind and help me with this? :)