【发布时间】:2021-08-22 17:29:10
【问题描述】:
我有以下代码:
public class A
{
public Guid Id { get; set; }
public List<A> AList { get; set; }
}
使用fluent Api配置:
modelBuilder
.Entity<A>()
.HasMany(x => x.AList)
.WithOne()
.OnDelete(DeleteBehavior.Cascade);
创建迁移工作正常,但在执行“更新数据库”时 我收到以下错误:
“在表'A'上引入FOREIGN KEY约束'FK_A_A_AId'可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。 无法创建约束或索引。查看以前的错误。”
那么如何在 EF Core 中删除级联树?
【问题讨论】:
-
您使用的是什么数据库管理系统?在 sql server 中有一个可以在关系之间定义的删除级联。
-
如果您查看错误源,您会发现它来自 SqlServer。所以这是 SqlServer 数据库限制,而不是 EF Core。
标签: c# sql-server entity-framework-core .net-5 ef-core-3.0