Reputation: 137
At the beginning I created the database in sql server Next i used a Entity Data Model (database first) and i get code that I embed below.
My db model:
DbModel.cs
public virtual DbSet < Actor > Actor {get;set;}
public virtual DbSet < Genre > Genre {get;set;}
public virtual DbSet < Movie > Movie {get;set;}
public virtual DbSet < sysdiagrams > sysdiagrams {get;set;}
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Entity < Actor > ()
.HasMany(e = > e.Movie)
.WithMany(e = > e.Actor)
.Map(m = > m.ToTable("MovieActors").MapLeftKey("ActorID").MapRightKey("MovieID"));
modelBuilder.Entity < Genre > ()
.HasMany(e = > e.Movie)
.WithMany(e = > e.Genre)
.Map(m = > m.ToTable("MovieGenres").MapLeftKey("GenreID").MapRightKey("MovieID"));
and the actor.cs
[Table("Actor")]
public partial class Actor {
public Actor() {
Movie = new HashSet < Movie > ();
}
public int ID {get;set;}
[Required]
[StringLength(50)]
public string FirstName {get;set;}
[Required]
[StringLength(50)]
public string LastName {get;set;}
public virtual ICollection < Movie > Movie {get;set;}
}
Everything works but..
using(var db = new MovieDbModel()) {
var movie = new Movie() {
Title = "Test",
Year = 1990
};
db.Actor.Add(new Actor {
FirstName = "Al", LastName = "Pacino"
});
db.Genre.Add(new Genre {
Name = "Action"
});
db.SaveChanges();
}
I do not know how to add actors to the movie because db.MovieActors not exist I made an error in the code?
I want insert to MovieActors (MovieID,ActorID) VALUES (1,1) but how?
Upvotes: 0
Views: 367
Reputation: 1458
You should add movie entity to actor.Movie collection, for example:
using (var db = new MovieDbModel("Server=localhost;Database=test;Trusted_Connection=True;"))
{
var movie = new Movie()
{
Title = "Test",
Year = 1990
};
var actor = new Actor
{
FirstName = "Al",
LastName = "Pacino"
};
db.Actor.Add(actor);
actor.Movie.Add(movie);
db.SaveChanges();
}
Upvotes: 1