所以如果我理解正确的话,它有一个简单的 DataAnnotations 解决方案。
[Column("TableID")]
我将从我的一个项目中为您提供一个工作示例。所以我有一个抽象类,它调用了Trip. Cruise并且Hotel类是从Trip类派生的。我需要将评论存储在单个表上,正如您所担心的那样,我不需要CruiseID也不HotelID在评论表上,所以我TripID用列注释命名,如果我们注释得当,实体框架将神奇地创建表
public class Comment
{
public int CommentID { get; set; }
[Column("TripID")]
[ForeignKey("Trip")]
public int TripID { get; set; }
public virtual Trip Trip { get; set; }
public string Text { get; set; }
}
public class CruiseComment : Comment
{
[Column("TripID")]
[ForeignKey("Cruise")]
public int CruiseID { get; set; }
public virtual Cruise Cruise { get; set; }
}
public class HotelComment : Comment
{
[Column("TripID")]
[ForeignKey("Cruise")]
public int HotelID { get; set; }
public virtual Hotel Hotel { get; set; }
}
没有必要使用ForeignKey注释。当您有不同的命名时需要它。