我在两个表之间创建了多对多关系
现在,每当我将数据添加到一个表时,由 DbContext 自动创建的表MoviesHashTags保持为空。
也许我不明白这两个表之间的联系,但是有没有一种特定的方法可以将数据添加到一个表中,并且它也会添加到 MoviesHashTags 表中?
例子:
我正在向 HashTags 表添加一个新的 HashTag: 当我调用Add()和SaveChanges()时,此 HashTag 包含电影 ID假设将 HashTag Id 和电影 ID 添加到 MoviesHashTags 表。
ATM 此 MoviesHashTags 表保持为空
-------------------------------------------------------------------------
表电影:
[DataContract]
public class Movie
{
[DataMember]
public long Id { get; set; }
*
*
*
[DataMember]
public ICollection<HashTag> HashTagsCollection { get; set; }
public Movie()
{
HashTagsCollection = new HashSet<HashTag>();
}
表标签:
[DataContract]
public class HashTag
{
[DataMember]
public long HashTagId { get; set; }
*
*
*
[DataMember]
public ICollection<Movie> MoviesCollection { get; set; }
public HashTag()
{
MoviesCollection = new HashSet<Movie>();
}
数据库上下文:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Movie>().
HasMany(c => c.HashTagsCollection).
WithMany(p => p.MoviesCollection).
Map(
m =>
{
m.MapLeftKey("Id");
m.MapRightKey("HashTagId");
m.ToTable("MoviesHashTags");
});
}