如何在EF Code First CTP5中更改DB中外键的命名约定?

时间:2011-02-24 21:34:32

标签: entity-framework code-first entity-framework-ctp5

我正在使用实体框架Code First CTP5,我试图找到一种方法来添加一个约定来更改外键名称的生成方式。这是一个例子:

public class Lead
{
    public int Id {get; set;}
    // A lot of other fields
    public virtual User AssignedTo { get; set; }
}

public class User
{
    public int Id {get; set;}
}

潜在客户可以与用户相关联。在Leads表的DB for AssignedTo中生成的字段称为UserId。

我的模型完全独立于实体框架。所以我不想使用EF的属性。我想在可能的情况下使用约定将字段命名为AssignedToUserId。

1 个答案:

答案 0 :(得分:2)

我不确定这是否可以使用可插入的约定,但您可以使用流畅的API来实现它:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Lead>()
                .HasRequired(l => l.AssignedTo)
                .WithMany()
                .IsIndependent()
                .Map(c => c.MapKey(u => u.Id, "AssignedToUserId"));
}