我有一个名为User
的实体,另一个叫AvailableConsumption
。
它们之间存在0..1到1的关联,而AvailableConsumption
应该有User
的FK,称为UserId
({{1}的名称表格的PK和我想要给FK的名字)。
每次我对模型进行更改时,会将User
重命名为UserId
(FK在模型中不显示为属性)。
是否可以通过模型避免此行为?
PS:我正在使用C#'Entity Framework 5和模型第一种方法。
答案 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");
}
}
在使用流畅映射进行专门设置之前的列名:
使用流畅映射专门设置后的列名: