Entity Framework Code First: Как я могу создать один-ко-многим И связь "один к одному" между двумя таблицами?

Вот моя модель:

public class Customer
{
    public int ID { get; set; }

    public int MailingAddressID { get; set; }
    public virtual Address MailingAddress { get; set; }

    public virtual ICollection<Address> Addresses { get; set; }
}

public class Address
{
    public int ID { get; set; }

    public int CustomerID { get; set; }
    public virtual Customer Customer { get; set; }
}

У клиента может быть любое количество адресов, однако только один из этих адресов может быть почтовым адресом.

Я могу добиться, чтобы отношения «один к одному» и отношения «один ко многим» работали нормально, если я использую только один, но когда я пытаюсь ввести оба, я получаю несколько ключей CustomerID (CustomerID1, CustomerID2, CustomerID3) в таблице адресов. Я действительно рву волосы из-за этого.

Чтобы отобразить отношения «один к одному», я использую метод, описанный здесь http://weblogs.asp.net/manavi/archive/2011/01/23/associations-in-ef-code- first-ctp5-part-3-one-to-one-external-key-association.aspx

19
задан Lucifer Sam 18 March 2011 в 00:39
поделиться