这是我遇到的错误:
在表“Battlestation”上引入外键约束“FK_Battlestation_AspNetUsers_UserId”可能会导致循环或多级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。 无法创建约束或索引。查看之前的错误。
这是包含带有外键的属性的模型:
public class Setup{
public int Id { get; set; }
public string UserId { get; set; } = string.Empty;
public string SetupName { get; set; }
public string SetupDesc { get; set; }
[NotMapped]
public IFormFile SetupImgFile { get; set; }
public string ImgPath { get; set; } = string.Empty;
[NotMapped]
public bool IsFavourited { get; set; }
// Navigation property for users who have favorited this setup
[ForeignKey("UserId")]
public ApplicationUser? FavouritedByUser { get; set; }
public Setup()
{
}
}
}
由于未提供
DbContext
类,我只是假设问题是在 DbContext.OnModelCreating()
方法中,如果您对具有外键的实体调用删除或更新操作,则需要指定更改跟踪器应该执行的操作限制。
有关级联操作,请参阅本教程。基本上,您需要执行类似的操作(取决于您要在删除时对关联实体执行的操作):
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder
.Entity<Blog>()
.HasOne(e => e.Owner)
.WithOne(e => e.OwnedBlog)
.OnDelete(DeleteBehavior.ClientCascade);
}