Ef code first 代码优先Fluent API-重命名不在模型中的自动生成的ForeignKeyID Db列

Ef code first 代码优先Fluent API-重命名不在模型中的自动生成的ForeignKeyID Db列,ef-code-first,Ef Code First,我遵循了关于代码优先TPT继承的教程: 用户模型包含到BillingDetail的单向导航。CodeFirst命名列“BillingDetail\u BillingDetailId”我想重命名列“BillingDetailId” 使用fluentapi。这是怎么做到的?这是用户模型 public class User { public int UserId { get; set; } public string FirstName { get; set; } publi

我遵循了关于代码优先TPT继承的教程:

用户模型包含到BillingDetail的单向导航。CodeFirst命名列“BillingDetail\u BillingDetailId”我想重命名列“BillingDetailId” 使用fluentapi。这是怎么做到的?这是用户模型

public class User
{
    public int UserId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public virtual BillingDetail BillingDetail { get; set; }
}

谢谢

您需要在用户对象上创建BillingDetailId属性,然后通过fluent API可以

protected override void OnModelCreating(DbModelBuilder builder)
{
    builder.Entity<User>()
         .Property(u => u.BillingDetailId)
         .HasColumnName("BillingDetailId ");
}
模型创建时受保护的覆盖无效(DbModelBuilder builder)
{
builder.Entity()
.Property(u=>u.BillingDetailId)
.HasColumnName(“BillingDetailId”);
}
因为您将“BillingDetail”作为属性…从该属性中提取的任何内容都将具有“BillingDetailId”的列名

模型创建时受保护的覆盖无效(DbModelBuilder builder)
{
builder.Entity().Property(u=>u.BillingDetail).HasColumnName(“BillingDetailId”);
}
protected override void OnModelCreating(DbModelBuilder builder)
{
     builder.Entity<User>().Property(u => u.BillingDetail).HasColumnName("BillingDetailId");
}