所以如果我理解正确的话,它有一个简单的 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
注释。当您有不同的命名时需要它。