我有一个表应该引用同一个表 . 但是当我尝试更新数据库架构时,它会抛出这个错误:
当我尝试更新架构时,PMC抛出此错误:
System.Data.SqlClient.SqlException(0x80131904):在表'Directory'上引入FOREIGN KEY约束'FK_Directory_Directory_SubOfId'可能会导致循环或多个级联路径 . 指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束 .
我尝试将ON DELETE设置为CASCADE但没有,仍然是相同的错误 . 我不知道如何设置NO ACTION,因为映射不提供此选项 .
怎么样?
实体:
public class Directory : BaseEntity
{
public int ID { get; set; }
public int? SubOfId { get; set; }
[ForeignKey("SubOfId")]
public Directory SubOf { get; set; }
public virtual ICollection ImageDirectory { get; set; }
}
模型构建器:
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
...
builder.Entity().HasOne(e => e.SubOf).WithOne().HasForeignKey(a => a.SubOfId).OnDelete(DeleteBehavior.Cascade);
}