EF 5外键名称

时间:2013-05-22 17:25:43

标签: c# entity-framework entity-framework-5

我有一个名为User的实体,另一个叫AvailableConsumption

它们之间存在0..1到1的关联,而AvailableConsumption应该有User的FK,称为UserId({{1}的名称表格的PK和我想要给FK的名字)。

每次我对模型进行更改时,会将User重命名为UserId(FK在模型中不显示为属性)。

是否可以通过模型避免此行为?

PS:我正在使用C#'Entity Framework 5和模型第一种方法。

1 个答案:

答案 0 :(得分:1)

您是否尝试使用Fluent API映射模型属性?

Configuring Relationships with the Fluent API

Configuring/Mapping Properties and Types with the Fluent API

我遇到了同样的问题。我的Donation实体具有一个名为PaymentTransaction的另一个实体的导航属性,这是必需的,因此被设置为外键。

public class DonationMap : EntityTypeConfiguration<Donation>{
    public DonationMap() {
        // Primary Key
        HasKey(t => t.Id);

        // Properties
        Property(t => t.Id).IsRequired();
        Property(t => t.FirstName).HasMaxLength(200).IsRequired();
        Property(t => t.LastName).HasMaxLength(200).IsRequired();
        Property(t => t.DonationAmount).HasColumnType("Money").IsRequired();

        // Column Mappings

        // PaymentTransaction is a navigation property
        //HasRequired(m => m.PaymentTransaction); // gives me column name "PaymentTransaction_PaymentTransactionId"
        HasRequired(m => m.PaymentTransaction).WithMany().Map(m => m.MapKey("PaymentTransactionId"));

        // Table Mapping
        ToTable("Donation");
    }
}

在使用流畅映射进行专门设置​​之前的列名:

enter image description here

使用流畅映射专门设置后的列名:

enter image description here