2016-10-31 4 views
1

Скажем, например, у меня есть эта простая модельотображение отношения EF с Fluent API

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

Вам не нужны оба Fluent заявления АНИ. Вы уже сопоставляете «оба направления» с одним утверждением.

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 
} 
Смежные вопросы