小编J. *_*Lee的帖子

实体框架(核心) - 级联删除

我使用的是 EF Core 3.1.1,但我相信这个问题适用于所有版本的 EF。

EF 似乎具有级联删除的能力 - 如果它已启用,并且依赖对象是否已在上下文中加载。

var blog = context.blogs.Include(x => x.Posts).First(x => x.BlogId == id);
context.blogs.Remove(blog);
Run Code Online (Sandbox Code Playgroud)

上面的语句删除了所有博客的帖子,然后是博客——每个都有不同的 sql 语句。

这就是我想要的,但是在使用代码优先时,它还创建了在数据库中启用级联删除的表。( ON DELETE CASCADE)

是否可以在 EF 中启用级联删除,并依赖 EF 删除依赖对象,而不启用数据库级级联删除?(还是我理解错误?)

原因是迁移失败,因为 SQL 不会在数据库中启用级联删除,因为它检测到多个级联路径(即使多个不会在架构中自然发生)

谢谢!

c# entity-framework entity-framework-core

8
推荐指数
2
解决办法
9599
查看次数