我过去使用过Laravel,并喜欢他们的polymorphic relations功能。
多态关系允许模型在单个关联上属于多个其他模型。例如,假设您的应用程序的用户可以“评论”帖子和视频。使用多态关系,您可以对这两种方案使用单个注释表。
Entity Framework Core中有类似的东西吗?我正在使用他们的Code First方法。谢谢
也许为时已晚,但对于有同样问题的人来说仍然有帮助。
肯定没有这样做,它被称为TPH你可以在这里找到更多关于如何做到这一点的信息https://docs.microsoft.com/en-us/ef/core/modeling/relational/inheritance。
但是,如果要为2个实体(2个父表)使用1个表,则它有一个主要缺点,那么您不能在“注释”表上使用ForeginKey约束。
您可以进行设置的方法是在注释表1上有两列,名为EntityType和LinkId。 EntityType列将是Discriminator列,它将告诉您此评论属于帖子或视频的父表。并且LinkId将告诉评论所属的视频表中的哪条记录
希望这能解决它。
我有同样的问题,我发现了3种可能的解决方案:
IComentableObject
。Comments(CommentID, ..., PostID, VideoID)