我有一个新闻实体,我根据他们的 NewsID 获取新闻。然后我定义了一个新实体,一个 Group,我想根据他们的 Group ID 获取新闻。我尝试通过使用代码优先方法使用本文处理这种(多对多)关系。
所以在我的上下文中,我添加了:
public class Groupnews : DbContext
{
public DbSet<Group> Group { get; set; }
public DbSet<News> News { get; set; }
public Groupnews()
: base("MyDb")
{
}
public int NewsID { get; set; }
}
this.HasMany(t => t.News)
.WithMany(t => t.Groups)
.Map(m =>
{
m.ToTable("GroupNews");
m.MapLeftKey("GroupID");
m.MapRightKey("NewsID");
});
现在我可以使用这种方法根据他们的 GroupID 获取新闻。但问题在于插入新新闻和更新。为此,我需要将 NewsID 和 GroupId 保存在 GroupNews 表中。为此。在我定义的新闻模型中:
public virtual ICollection<Group> RelatedGroups { get; set; }
public News()
{
RelatedGroups = new List<Group>();
}
和相同的 group :
public virtual ICollection<News> RelatedNews { get; set; }
public Group()
{
RelatedNews = new List<News>();
}
在我的新闻控制器中,我添加:
Group group = new Group();
group.RelatedNews.Add(news);
但没有任何更新,并且 NewsID 没有添加到我的 GroupNews 表中。