CodeFirst EF 4.1继承-重命名PK / FK

|| 我有两个类,ThreadItem和Enquiry。
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]表和一个[查询]表。我的查询表有一个PK / FK,它映射到ThreadItem,这是我所需要的。但是,我想重命名该列。 根据ThreadItemMapping类,当前为[ThreadItemId]。我想将其重命名为[EnquiryId]。我知道被称为[ThreadItemId]是有道理的,说实话,这更多是一个“是否可能”的问题。 有任何想法吗? 干杯, d     
已邀请:
        http://msdn.microsoft.com/zh-cn/library/gg197525%28v=vs.103%29.aspx 我并不是说这无法完成,但是这些示例并未显示正在执行此操作。 但是,如果使用Fluent-API约定,则非常简单。 您的POCO定义:
public class BaseClass
{
    public int Id {get; set;}
}

public class DerivedClass : BaseClass
{
    public string Data {get; set;}
}
配置到数据库的映射:
public class BaseConfiguration : EntityTypeConfiguration<BaseClass>
{
    public BaseConfiguration()
{
    HasKey(k => k.Id);
    Property(p => p.Id).HasColumnName(\"Id\").HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity).IsRequired();
}
}

public class DerivedConfiguration : BaseConfiguration
{
    public DerivedConfiguration()
{
    Property(p => p.Id).HasColumnName(\"BaseClassId\");
}
}
全部放在一起
public class MyContext : DbContext
{
    public MyContext(string connectionString) : base(connectionString)
{
    Database.SetInitializer<MyContext>(null);
}

public DbSet<BaseClass> Bases { get; set; }
public DbSet<DerivedClass> Deriveds { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Configurations.Add(new BaseConfiguration());
    modelBuilder.Configurations.Add(new DerivedConfiguration());
}
}
因此,您实例化了一个传入连接字符串的MyContext,并且配置告诉EF如何与表关联。     

要回复问题请先登录注册