ニュース エンティティがあり、NewsID に基づいてニュースを取得します。次に、新しいエンティティ、グループを定義し、グループ 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 テーブルに追加されません。