这是我的表,因此用户可以拥有一个也是用户的经理:
public class User : IdentityUser<int>
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int? AttachedManagerId { get; set; }
public ApplicationUser AttachedManager { get; set; }
}
这是尝试在删除管理器时禁用附加用户的删除:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, int>
{
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<User>()
.HasOne(s => s.AttachedManager)
.WithMany()
.HasForeignKey(s => s.AttachedManagerId)
.OnDelete(DeleteBehavior.SetNull);
}
}
当我添加迁移时,会生成以下内容:
migrationBuilder.AddForeignKey(
name: "FK_AspNetUsers_AspNetUsers_AttachedManagerId",
table: "AspNetUsers",
column: "AttachedManagerId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.SetNull) ;
所以我有这个错误:
调用方法时遇到错误&#39; BuildWebHost&#39;在课堂上 &#39;计划&#39 ;.继续没有应用程序服务提供商。错误: 引入FOREIGN KEY约束 &#39; FK_AspNetUsers_AspNetUsers_AttachedManagerId&#39;在桌上&#39; AspNetUsers&#39; 可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY 限制。无法创建约束或索引。见前 错误。