如何在多对多关系中插入数据?我有这个代码定义的这两个模型
public class Article
{
public int ArticleID { get; set; }
public string Title { get; set; }
public DateTime Date { get; set; }
public string Anotation { get; set; }
public string Body { get; set; }
public virtual ICollection<ArticleTag> ArticleTags { get; set; }
}
public class ArticleTag
{
public int ArticleTagID { get; set; }
public string TagName { get; set; }
public virtual ICollection<Article> Articles { get; set; }
}
现在最大的问题是如何用测试数据为数据库播种。我对普通表和查询有一些经验,在 MVC EF 中我是个新手。通常我会创建一个关联表,并在其中定义这些模型之间的链接。但是我已经阅读了很多教程,但都没有给我一个确定的方法来做到这一点,所以我可以想象我的困惑。
正如我之前所说,我通过模型构建器“创建”了一个关联表,这就是我结束的地方:(
public class DatabaseContext : DbContext
{
public DbSet<Article> Articles { get; set; }
public DbSet<ArticleTag> ArticleTags { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Article>().
HasMany(at => at.ArticleTags).WithMany(a => a.Articles).
Map(m => m.MapLeftKey("ArticleID").MapRightKey("ArticleTagID").ToTable("Articles_To_ArticleTags"));
}
}
我需要知道为我的数据库播种的最简单方法(不在乎是否必须删除关联表)并了解它在 MVC 中的工作原理 - 链接两个模型,链接两个特定实例,...,以及如何全部编码。
谢谢任何答案。