他の 2 つのエンティティ (ドメイン、サブページ) に関連するエンティティ (リンク) を作成しようとしているため、リンク テーブルには ID とサブページ ID の 2 つの列があります。基本的に、ドメインオブジェクトとサブページオブジェクトを多くのリンクオブジェクトにマップでき、各リンクオブジェクトが1つのドメインとサブページオブジェクトにのみ関連する2つの1対多の関係を作成しようとしています.
リンクモデル
public class Link
{
[Key]
public int LinkID { get; set; }
...
[Required]
public int ID { get; set; }
public virtual Domain Domain { get; set; }
[Required]
public int SubpageID { get; set; }
public virtual Subpage Subpage { get; set; }
}
ドメインモデル
public class Domain
{
public int ID { get; set; }
...
ICollection<Link> Links { get; set; }
}
サブページ モデル
public class Subpage
{
[Key]
public int SubpageID { get; set; }
...
[Required]
public int ID { get; set; }
public virtual Domain Domain { get; set; }
ICollection<Link> Links { get; set; }
}
DbContext
public class DomainAppContext : DbContext
{
public DbSet<Domain> Domains { get; set; }
public DbSet<RegInfo> RegInfos { get; set; }
public DbSet<Subpage> Subpages { get; set; }
public DbSet<Link> Links { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
}
}
カスケード削除などの問題を解決した後、リンク テーブルに SubpageID 列がないことに気付きましたが、その理由がわかりません...
EF にリンク テーブルに SubpageID 列を作成させるにはどうすればよいですか?