在使用EF Core创建外键时,可以使用Fluent API将其配置为不在shadow中创建外键,而是直接在表格中创建。可以使用以下代码示例:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity()
.HasMany(p => p.Children)
.WithOne(c => c.Parent)
.HasForeignKey(c => c.ParentId)
.OnDelete(DeleteBehavior.Cascade);
}
在上面的代码示例中,我们指定了Parent实体具有多个Children实体,而Children实体只能拥有一个Parent实体。同时,我们还指定了Cascade删除行为和将外键直接创建在表格中(而不是在shadow中创建)。
因此,我们可以避免在列名后添加随机的数字1。