1

私はモデルを持っています:

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サーバー上に作成されています。エンティティフレームワークを使用してこのテーブルにデータを挿入するにはどうすればよいですか?たとえば、Moviesテーブルにデータを挿入するには、コードdb.Movies.Add(movie)およびdb.SaveChanges()を使用しました}

4

1 に答える 1

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

これにより、多対多テーブルを更新できるようになります。

于 2013-03-12T22:08:06.630 に答える