我有两个类,ThreadItem和Inquiry。CodeFirst EF 4.1继承 - 重命名PK/FK
public class ThreadItem
{
[Key]
public int Id { get; set; }
public DateTime Created { get; set; }
}
public class ThreadItemMapping : EntityTypeConfiguration<ThreadItem>
{
public ThreadItemMapping()
{
Property(a => a.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity).HasColumnName("ThreadItemId");
}
}
[Table("Enquiry")]
public class Enquiry : ThreadItem
{
public string Comment { get; set;}
}
现在,这工作,而不是一个单一的问题。我有一个[ThreadItem]表和一个[Inquiry]表。我的查询表有一个映射到ThreadItem的PK/FK,这是我所需要的。但是,我想重命名该列。
目前它是[ThreadItemId],根据ThreadItemMapping类。我想重新命名它[EnquiryId]。我明白它被称为[ThreadItemId]是有道理的,这实际上更像是一个'可能'的问题。
任何想法?
干杯, d
有趣的问题! EF 4.0实际上支持在Table-Per-Type继承中将任意列名映射到基类的key属性。 (你甚至可以在设计器中映射它。)但是它看起来DbContext API没有选项来配置这个场景。键列名称在所有派生类中必须相同。据我可以看到至少... – Slauma 2011-06-14 17:04:20