c# - EF Core 级联删除
问题描述
上下文:Visual Studio、Blazor .NET 5、Azure SQL Server
我有一个有两个 FK 的实体。如果我删除 FK 表中的一条记录,我会收到典型的引用错误。在https://docs.microsoft.com/en-us/ef/core/saving/cascade-delete中似乎说 Cascade Delete 是默认设置。当我生成一个新的迁移(添加迁移级联)时,没有
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
...附加到生成的迁移文档中相关实体的 FK 属性。
实体类中是否有可以应用于FK属性的Attribute?
在代码中还有其他方法可以做到这一点吗?
如何修改迁移文档以巩固 th?
解决方案
这就是我最终做的事情..我在代码中做到了
public async Task DeleteRound(int Id) { var round = _context.Rounds.Where(e => e.Id==Id).Include(e => e.Activitys).First(); _context.Rounds.Remove(round); await _context.SaveChangesAsync(); }
我必须在 Round 类中添加以下内容:
public IList<Activity> Activitys { get; } = new List<Activity>();
无需进一步的代码。无需像上面那样填充列表。似乎 EF 正在无缝地做到这一点。无需注释迁移文件。
推荐阅读
- python - 如果我在 Pygame 中有两个不同大小的矩形(10 x 10 和 20 x 20),我怎么知道这两个矩形何时发生碰撞?
- python - Print out dictionary from file
- javascript - jQuery .toggleClass 没有按预期工作
- swift - 使用不同的数组动态更改 Picker 中的选项
- html - 如何使单个离子卡项目列表可滚动
- bash - 用于检查文件最后一列中的字符串并将其操作为整数的 Bash 脚本
- python - 在 python 中读取网页时出错,但 url 在 webbrowser 上有效
- r - 在同一函数中加入两个时间序列
- python - 如何优化包含 R 或 Python 中的积分的函数?
- java - 我可以为这个程序编写什么断言测试用例?