使用实体框架:代码首先,我正在尝试使用基类的导航属性来定义集合导航属性。
对象结构:
public class Content
{
public int ID { get; set; }
public ModerationStatuses ModerationStatus { get; set; }
public ContentItemTypes ContentType { get; set; }
public virtual User Author { get; set; }
}
public class Image : Content
{
public Image()
: base()
{
ContentType = ContentItemTypes.Image;
}
public string FileName { get; set; }
public string Location { get; set; }
public int DisplayOrder { get; set; }
public long FileSize { get; set; }
}
public class User
{
public int UserID { get; set; }
public string Username { get; set; }
public virtual ICollection<Image> Images { get; set; }
}
上下文 OnModelCreating:
modelBuilder.Entity<Content>()
.Map(i => i.ToTable("Content"));
modelBuilder.Entity<Image>()
.Map(i => i.ToTable("Images"));
生成数据库时,它会在 Images 表中创建一个 User_UserID 外键约束,而不是在 Content 表中使用 Author_UserID。
如何让它识别 Content..Author_UserID 字段作为ICollection<Image>
导航属性的外键?