【问题标题】:EF6 - Mantaining base class record on deleteEF6 - 在删除时维护基类记录
【发布时间】:2014-08-16 05:14:22
【问题描述】:

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

但现在我需要对其进行更改,并且当基础实体被删除时,我需要在数据库中维护实体 B

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

我曾考虑将其从继承更改为组合,但更愿意仅更改删除行为。

提前致谢。

【问题讨论】:

  • 你应用了什么类型的继承?每个类型的表? B 有自己的表和表 A(它提供 A 附加属性)引用表 B,对吗?当你删除 A 时,你想保留 B 中的行,对吧?
  • 我有两张表,一张用于基类,一张用于子类。

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


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢,这真的是我以前从未想过的方式。
猜你喜欢
  • 2017-08-24
  • 1970-01-01
  • 1970-01-01
  • 2021-05-23
  • 2012-08-05
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多