Внешний ключ Entity Framework Code First Mapping External Key с использованием Fluent API

У меня ситуация, когда у пользователя может быть несколько адресов. Соответственно, у меня есть ICollection в моем пользовательском классе. Но я также хочу, чтобы пользователь мог выбрать адрес по умолчанию. Итак, я сделал следующее:

public class User 
{
    public int Id { get; set; }
    public int? DefaultAddressId { get; set; }
    [ForeignKey("DefaultAddressId")]
    public virtual Address DefaultAddress { get; set; }
    public virtual ICollection<Address> Addresses { get; set; }
    //properties were removed for purpose of this post
}

Я хотел бы удалить общедоступный виртуальный адрес DefaultAddress {get; установлен; } вместе, сохраните DefaultAddressId и сопоставьте его с помощью Fluent API, потому что текущая настройка вызывает много проблем (в этом и других классах, где у меня аналогичная настройка). Так можно ли это сделать с помощью свободного API?

ОБНОВЛЕНИЕ: Класс адреса в настоящее время не имеет ссылки на класс User, это однонаправленная связь. Но да, адрес принадлежит только ОДНОМУ пользователю, это не отношение "многие ко многим". Вот класс адреса:

public class Address
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Details { get; set; }
    public virtual Area Area { get; set; }
}
8
задан Kassem 30 March 2011 в 19:13
поделиться