Структура сущности (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 =&gt; a.Id);
 }
 }
public partial class CustomerMap : EntityTypeConfiguration&lt;customer&gt;
 {
 public CustomerMap()
 {
 this.ToTable("Customer");
 this.HasKey(c =&gt; c.Id);
 this.HasOptional&lt;/customer&gt;</code><address><code>(c =&gt; c.BillingAddress);
 this.HasOptional</code><address><code>(c =&gt; 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 =&gt; c.BillingAddress)
 .WithMany()
 .IsIndependent().Map(m =&gt; 
 {
 m.MapKey(a =&gt; a.Id, "BillingAddressId"); 
 });
 this.HasOptional</code><address><code>(c =&gt; c.ShippingAddress)
 .WithMany()
 .IsIndependent().Map(m =&gt;
 {
 m.MapKey(a =&gt; a.Id, "ShippingAddressId");
 }); 
}</code>
<p> </p></address></address>

licensed under cc by-sa 3.0 with attribution.