2013-03-12 51 views
1

我有模式:的ASP.NET MVC - Enitity框架多對多的關係,插入數據

public class Movie 
{ 
    [Key] 
    public int MovieId { get; set; } 

    public string Title{ get; set; } 

    public ICollection<Actor> Actors { get; set; } 
} 

public class Actor 
{ 
    [Key] 
    public int AtorId { get; set; } 
    public string Nome { get; set; } 

    public ICollection<Movie> Movies { get; set; } 
} 

和上下文:

public class MoviesContext : DbContext 
{ 
    public DbSet<Movie> Movies { get; set; } 
    public DbSet<Actor> Actors { get; set; } 

    public MoviesContext() 
    { 
     Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MoviesContext>()); 
    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 
     modelBuilder.Entity<Movie>(). 
      HasMany(m => m.Actors). 
      WithMany(a => a.Movies). 
      Map(
       m => 
       { 
        m.MapLeftKey("MovieId"); 
        m.MapRightKey("ActorId"); 
        m.ToTable("ActorsMovies"); 
       }); 
    } 
} 

表 「ActorsMovies」 已經在SQL創建服務器。我如何將數據插入此表與實體框架?要插入的表格電影數據,例如,我使用的代碼db.Movies.Add(電影)和db.SaveChanges() }

+0

所以你所有的模型都是DB先? – Nikos 2013-03-12 22:07:26

回答

1
movie.Actors.Add(actor); 
db.SaveChanges(); 

這應該允許您更新多對多表。