C# 添加迁移自动设置';onDelete:referentialiction.Restrict)';
在ASP.NET Core EF中,我有两个相关的表。一个有性别(男/女)一个有名字 Model/Personal.csC# 添加迁移自动设置';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; }
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;
}
}