EF6 - 删除时的Mantaining基类记录

时间:2014-06-25 14:55:50

标签: c# .net entity-framework inheritance orm

在我的上下文中,我有两个实体,实体A继承自B,它们使用流畅的API进行映射并且工作了一段时间。

但现在我需要更改它,当基本实体被删除时,我需要在数据库中维护实体 B

EF6可以吗?默认行为是从两个表中删除记录。

我想过将它从继承更改为组合,但更愿意只更改删除行为。

提前致谢。

1 个答案:

答案 0 :(得分:2)

只要A不是抽象的,它就可以工作。 如果删除TPT映射对象,EF将为基数发送一个删除语句,为继承表发送一个删除语句。

您可以使用命令拦截器来阻止执行基本删除,也可以使用存储过程映射进行删除。

如果A是抽象的,您可以继承DeletedA类并在DeleteA存储过程中创建相应的entiry。