我知道在 SQL Server 中,当我删除表中的父行时,我可以在级联上使用 delete,但在某些地方,我读到最好在应用程序(存储库)中实现此逻辑,而不是在 SQL Server 中级联删除。
所以我有两个问题。首先,如果我在 SQL Server 中不使用删除级联,如何使用 Entity Framework 解决这种情况。
- 用户 A 将父寄存器及其子寄存器添加到上下文中
- 用户 B 将一个新的孩子添加到父寄存器。所以用户 A 在上下文中没有这个孩子
- 用户 A 删除其上下文中加载的父级和所有子级。这些孩子不包括用户 B 添加的新孩子。
好吧,在实践中,没有问题,当用户A试图删除父级时,存在引用完整性异常,需要加载其所有子级并重试。
这对于 SQL Server 来说是一项额外的工作,因为它需要再次将所有寄存器发送给用户 A。
如果我在 SQL Server 中对级联使用 delete,则不存在此问题,因此我认为是一个不错的选择。
所以我的第二个问题是,在 SQL Server(或其他数据库)中使用删除级联是一个好主意,还是在业务逻辑(存储库)中实现这种情况更好?
谢谢。