C# 添加迁移自动设置';onDelete:referentialiction.Restrict)';

C# 添加迁移自动设置';onDelete:referentialiction.Restrict)';,c#,asp.net-core,C#,Asp.net Core,在ASP.NET Core EF中,我有两个相关的表。一个有性别(男/女)一个有名字 Model/Personal.cs namespace Employees.Models { public class Personal { [Key] public int GenderID { get; set; } [StringLength(30)] public string Gender { get; set; }

在ASP.NET Core EF中,我有两个相关的表。一个有性别(男/女)一个有名字

Model/Personal.cs

namespace Employees.Models
{
    public class Personal
    {
        [Key]
        public int GenderID { get; set; }

        [StringLength(30)]
        public string Gender { get; set; }

    }
}
Model/Name.cs

namespace Employees.Models
{
    public class Name
    {
        [Key]
        public int NameID { get; set; }

        [StringLength(30)]
        public string FirstName { get; set; }

        [StringLength(30)]
        public string LastName { get; set; }
        
        public int PersonalGenderID { get; set; }
    }
}
Data/MyContext.cs

namespace Employees.Data
{
    public class MyContext : DbContext
    {
        public MyContext(DbContextOptions<MyContext> options) : base(options)
        {

        }
       
        public DbSet<Personal> Personals { get; set; }
        public DbSet<Name> Names { get; set; }

    }
}
我总是必须替换
onDelete:referentialction.Cascade)行到
onDelete:referentialction.Restrict)


要使Add Migration命令自动将onDelete设置为Restrict,我需要做什么更改呢。找到了。如果你有同样的问题

在Data/MyContext.cs中添加

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);

    foreach (var foreignKey in modelBuilder.Model.GetEntityTypes()
        .SelectMany(e => e.GetForeignKeys()))
    {
        foreignKey.DeleteBehavior = DeleteBehavior.Restrict;
    }
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);

    foreach (var foreignKey in modelBuilder.Model.GetEntityTypes()
        .SelectMany(e => e.GetForeignKeys()))
    {
        foreignKey.DeleteBehavior = DeleteBehavior.Restrict;
    }
}