EF Core Cascade Delete



环境:Visual Studio, Blazor .NET 5, Azure SQL Server

我有一个有两个FK的实体。如果我在一个FK表中删除一条记录,我会得到典型的引用错误。在https://learn.microsoft.com/en-us/ef/core/saving/cascade-delete中,它似乎说级联删除是默认的。当我生成一个新的迁移(添加-迁移级联)时,没有

.OnDelete(DeleteBehavior.Cascade)
.IsRequired();

…在生成的迁移文档中附加到相关实体的FK属性。

  1. 是否有一个属性可以应用于实体类中的FK属性?

  2. 是否有其他方法在代码中做到这一点?

  3. 我如何修改迁移文档来巩固?

这就是我最后做的。我在代码

中做的
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>();

不需要进一步的代码。不需要像上面那样填充列表。看来英孚在这方面做得天衣无缝。不需要注释迁移文件。

最新更新