2016-10-31 7 views
1

言って、私はこの単純なモデルEF関係マッピング

class Student 
{ 
    List<Course> Courses { get; set; } 
} 

class Course 
{ 
    Student Student { get; set; } 
} 

を持っている私は、両方向の関係をマッピングする必要がありますか?

builder 
    .Set<Course>() 
    .HasOne(o => o.Student) 
    .WithMany(o => o.Courses) 
    .HasForeightKey("StudentId"); 

builder 
    .Set<Student>() 
    .HasMany(o => o.Courses) 
    .WithOne(o => o.Student) 
    .HasForeignKey("StudentId"); 

答えて

4

あなたは、両方の流暢のAPIステートメントは必要ありません。あなたはすでに、 "両方向"を1つのステートメントでマッピングしています。ここで

builder 
    .Set<Course>() 
    .HasOne(o => o.Student) //Course Has One Student 
    .WithMany(o => o.Courses) //Student Has Many Courses 
    .HasForeightKey("StudentId"); //Course Has Foreign Key of StudentId 

そこ例良いチュートリアルentity framework tutorialで次のようになります。

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    //configure one-to-many 
    modelBuilder.Entity<Standard>() 
       .HasMany<Student>(s => s.Students) //Standard has many Students 
       .WithRequired(s => s.Standard) //Student require one Standard 
       .HasForeignKey(s => s.StdId); //Student includes specified foreignkey property name for Standard 
}