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