Я создаю приложение веб-форм ASP.NET с использованием Entity Framework 6.1 с подходом, основанным на коде, для создания базы данных. У меня есть две таблицы, Product и Tags, в отношениях "многие ко многим". Классы ниже:
public class Product
{
public long Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public virtual ICollection<Tag> Tags { get; set; }
}
public class Tag
{
public long Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Product> Products{ get; set; }
}
Мне нужны две соединительные таблицы из этой связи ProductTags и ProductTagsTradeFor. Поэтому я переопределил OnModelCreating для WebsiteDbContext.
modelBuilder.Entity<Product>().HasMany<Tag>(s => s.Tags).WithMany(c => c.Products)
.Map(cs =>
{
cs.MapLeftKey("ProductId");
cs.MapRightKey("TagId");
cs.ToTable("ProductTags");
});
modelBuilder.Entity<Product>().HasMany<Tag>(s => s.Tags).WithMany(c => c.Products)
.Map(cs =>
{
cs.MapLeftKey("ProductId");
cs.MapRightKey("TagId");
cs.ToTable("ProductTradeForTags");
});
После запуска приложения база данных была создана, и таблица ProductTradeForTags присутствует, но таблица ProductTags отсутствует.
В чем проблема и как ее исправить, чтобы обе таблицы были созданы?