我有表 A 和表 B:
TableA(IDTableA,...) TableB(IDTableB, IDTableA,...)
我知道如果我在数据库上设置它,我可以在级联上删除,但如果我没有在数据库中定义它并且我想用 EF 删除孩子,这是最好的方法吗?
想象一下这种情况:用户 A 将父级添加到上下文中,用户 A 将子级添加到上下文中,将父级和子级标记为已删除并保存更改。但是,如果用户 B 在用户 A 加载子项并确认更改之间添加了一个新子项,则不会删除用户 B 添加的新子项,或者由于引用完整性而出现异常。
我尝试使用事务,将父级设置为已删除,然后,在下一步中,当我创建时savechanges
,父级寄存器被锁定,因此其他用户无法加载。但问题是一样的,其他用户可以在父级之间进行更改,即加载和保存更改。
所以我的问题是,如果我想用 EF 删除父级及其所有子级,最好的方法是什么?最好的方法是尝试N次删除父项?当我有良好的表现时,这是一个不错的选择吗?
谢谢。戴姆洛克。