ef core 中的 TPH 模式用于不同实体之间的共享表
Posted
技术标签:
【中文标题】ef core 中的 TPH 模式用于不同实体之间的共享表【英文标题】:TPH pattern in ef core for a shared table between different entities 【发布时间】:2021-12-24 07:15:39 【问题描述】:我有一个问题。 请假设我们有不同的实体,例如类别、博客、视频……并且每个实体都有自己的 cmets。如何仅使用一个 FK 为所有这些实体使用一个注释表?是 TPH 模式吗?我如何在 codefirst 方法中实现它? 类似于 Comments(CommentID, ..., PostID, VideoID) 到 Comments(CommentID) 的东西。 提前致谢。
【问题讨论】:
【参考方案1】:您可以通过使用多对多关系或为关系单独链接实体来消除 cmets 表中的 FK。
【讨论】:
我不想为每个表都有 fk,因为 fk 有几个空值考虑到我们在 cmets 表中有 100 条类别记录,fk 的其余部分(如视频或博客)在所有 100 条中都为空记录。我只想为所有表格设置一个 fk,并使用鉴别器之类的东西来识别哪个评论是针对哪个表格的以上是关于ef core 中的 TPH 模式用于不同实体之间的共享表的主要内容,如果未能解决你的问题,请参考以下文章
更新子记录 EF Core 3.0 中的错误实体之间的关联已被切断,但关系被标记为“必需”
Entity Framework 4.3 - TPH 映射和迁移错误
即使在显式包含之后,EF Core“InvalidOperationException:包含已用于非实体可查询”的导航属性也是如此