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 属性 指定为两者的外键,尽管我自己没有测试过这种情况(我在移动设备上)。试试看,让我知道!
我想留在 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 属性 指定为两者的外键,尽管我自己没有测试过这种情况(我在移动设备上)。试试看,让我知道!