Структура сущности (CTP5, Fluent API). Переименовать столбец навигационной собственности

У меня есть два вопроса:

public class Address
{
 public int Id { get; set; }
 public string FirstName { get; set; 
 public string LastName { get; set; }
}
public partial class Customer
 {
 public int Id { get; set; }
 public string Email { get; set; }
 public string Username { get; set; }
 public virtual Address BillingAddress { get; set; }
 public virtual Address ShippingAddress { get; set; }
 }

Ниже приведены классы отображения:

public partial class AddressMap : EntityTypeConfiguration<address><code>
 {
 public AddressMap()
 {
 this.ToTable("Addresses");
 this.HasKey(a => a.Id);
 }
 }
public partial class CustomerMap : EntityTypeConfiguration<customer>
 {
 public CustomerMap()
 {
 this.ToTable("Customer");
 this.HasKey(c => c.Id);
 this.HasOptional</customer></code><address><code>(c => c.BillingAddress);
 this.HasOptional</code><address><code>(c => c.ShippingAddress);
 }
 }
</code>
<p>Когда создается база данных, моя таблица "Клиент" имеет два столбца для свойств "BillingAddress" и "ShippingAddress". Их имена - "AddressId" и "AddressId1".
Вопрос: как я могу переименовать их в "BillingAddressId" и "ShippingAddressId"?</p></address></address></address>
1 ответ

В основном вы хотите настроить имя столбца FK в независимой ассоциации, и этот код сделает это для вас:

public CustomerMap()
{
 this.ToTable("Customer"); 
 this.HasOptional<address><code>(c => c.BillingAddress)
 .WithMany()
 .IsIndependent().Map(m => 
 {
 m.MapKey(a => a.Id, "BillingAddressId"); 
 });
 this.HasOptional</code><address><code>(c => c.ShippingAddress)
 .WithMany()
 .IsIndependent().Map(m =>
 {
 m.MapKey(a => a.Id, "ShippingAddressId");
 }); 
}
</code>
<p> </p></address></address>

licensed under cc by-sa 3.0 with attribution.