2

我有一个实体叫User和另一个叫AvailableConsumption

它们之间存在 0..1 到 1 的关联,并且AvailableConsumption应该User调用 's FK UserId(这是User表的 PK 的名称和我想放在 FK 中的名称)。

发生的情况是,每次我对模型进行更改时,它都会重命名UserIdUser_UserId(FK 不会作为模型中的属性出现)。

是否可以仅通过模型来避免这种行为?

PS:我正在使用 C#' Entity Framework 5 和模型优先方法。

4

1 回答 1

1

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

使用 Fluent API 配置关系

使用 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");
    }
}

使用流利映射专门设置它之前的列名:

在此处输入图像描述

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

在此处输入图像描述

于 2013-05-25T08:02:16.787 回答