FK 列到多个表 POCO

FK column to mulitple tables POCO

我想留在 POCO,但我陷入了僵局:

Public class Alpha()
{
        public int ID { get; set; }
        [ForeignKey("")]
        public int BetaId { get; set; }

        public virtual BetaA BetaA{ get; set; }
        public virtual BetaB BetaB{ get; set; }
}

Public class BetaA()
{
        public int ID { get; set; }
}

Public class BetaB()
{
        public int ID { get; set; }
}

如何让 Alpha.BetaId 在 POCO 中同时成为 BetaA.ID 和 BetaB.ID 的外键?

如果其他人遇到这个问题

我使用的解决方案

Public class Alpha()
{
        public int ID { get; set; }
        public int BetaId { get; set; }

        [ForeignKey("BetaId")]    
        public virtual BetaA BetaA{ get; set; }
        [ForeignKey("BetaId")]
        public virtual BetaB BetaB{ get; set; }
}

Public class BetaA()
{
        public int ID { get; set; }
}

Public class BetaB()
{
        public int ID { get; set; }
}

让 BetaA 和 BetaB 共享一个主键,然后通过 BetaA 引用 BetaB

您还可以使用外键属性修饰 nav 属性,并将 int 属性 指定为两者的外键,尽管我自己没有测试过这种情况(我在移动设备上)。试试看,让我知道!