Мне нужно создать связь, где у меня есть пользовательская таблица, которая ссылается на таблицу адресов.Проблема в том, что мне нужна таблица адресов для хранения исторических адресов.Также возможно, что у пользователя вообще может не быть адреса.
public class user
{
public virtual int ID { get; set; }
...
public virtual int? AddressId { get; set; }
[ForeignKey("AddressId")]
public virtual Address CurrentAddress { get; set; }
public virtual ICollection<Address> HistoricAddresses { get; set; }
}
public class Address
{
public virtual int ID { get; set; }
...
}
Я пробовал разные способы заставить это работать и получал различные ошибки, такие как размещение другой таблицы между Пользователем и адресом:
public class HistoricAddress
{
public virtual int ID { get; set; }
public Address HistoricAddress { get; set; }
}
public class user
{
public virtual int ID { get; set; }
public virtual Address CurrentAddress { get; set; }
public virtual ICollection<HistricAddress> HistoricAddresses { get; set; }
...
}
и другие различные способы, но это также бросаетошибки.Должен быть правильный способ сделать это.Последняя ошибка, которую я получил:
"System.Data.Entity.Infrastructure.DbUpdateException: ошибка при обновлении записей. Подробности смотрите во внутреннем исключении. ---> System.Data.UpdateException: AnПроизошла ошибка при обновлении записей. Подробности см. во внутреннем исключении. ---> System.InvalidOperationException: Зависимое свойство в ReferentialConstraint сопоставлено с столбцом, сгенерированным хранилищем. Столбец: 'ID'. "