2016-10-31 2 views
1

Sagen Sie zum Beispiel Ich habe dieses einfache ModellEF Beziehung Mapping mit Fluent API

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

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

Muss ich in beiden Richtungen die Beziehung Karte?

Beispiel

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"); 

Antwort

4

Sie müssen nicht beide fliessend Api Aussagen. Sie ordnen bereits "beide Richtungen" mit einer einzigen Anweisung zu.

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 

Hier ist ein gutes Tutorial entity framework tutorial das Beispiel es wie folgt aussieht:

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 
} 
Verwandte Themen