0
在開始時,我在sql server中創建了數據庫 接下來,我使用了一個實體數據模型(數據庫優先),並獲取了我在下面嵌入的代碼。如何使用DbContext在許多表中添加記錄
我的數據庫模型:
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"));
和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;}
}
一切正常,但..
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();
}
我不知道如何添加演員到電影,因爲db.MovieActors不存在 我在代碼中犯了一個錯誤?
我想要插入到MovieActors(MovieID,ActorID)VALUES(1,1)但如何?
它的工作原理,但如果演員存在,我想只會增加現有的演員ID? – Enteee
然後,您應該從數據庫中獲取actor並執行相同的操作 var actor = db.Actor.Single(x => x.Id == 1); var movie = db.Movie.Single(x => x.Id == 1); movie.Actor.Add(actor); db.SaveChanges(); – Oleg
太好了。感謝您的幫助!! – Enteee