我正在尝试创建一个与其他两个实体(域、子页面)相关的实体(链接),因此链接表将有两列 ID 和 SubpageID。基本上我正在尝试创建 2 个一对多关系,其中域对象和子页面对象可以映射到许多链接对象,并且每个链接对象仅与一个域和子页面对象相关。
链接模型
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; }
}
数据库上下文
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 在 Link 表上创建 SubpageID 列?