Сбой отношения один к одному в коде структуры объекта - PullRequest
2 голосов
/ 01 сентября 2011

Сначала я пытаюсь построить код EF v4.1 отношений один-к-одному. Это мой код:

public class System
{
    [Key, ForeignKey("Station") ] 
    public int Id { get; set; }

    [DisplayName("Last Polled")]
    public DateTime? LastPolledOn { get; set; }

    public virtual Station Station { get; set; }
}

public class Station
{
    public int Id { get; set; }               
    public int Status { get; set; }

    public string FullName
    {
        get
        {
            return StoreNumber + " - " + StoreName;
        }
    }

    public virtual System System{ get; set; }        
}

Это работает нормально, но когда я удаляю Station, я получаю ошибку каскадного удаления:

"Невозможно удалить значение первичного ключа, поскольку ссылки на этот ключ все еще существуют. [Имя ограничения внешнего ключа = System_Station]"} "

Что я должен сделать, чтобы решить эту проблему?

Ответы [ 2 ]

2 голосов
/ 01 сентября 2011

Как говорится в сообщении об ошибке, по-прежнему существует отношение внешнего ключа к Station, поэтому в любом случае сначала используйте каскадное удаление или удаление соответствующих строк в System.

1 голос
/ 01 сентября 2011

Первичным ключом системы является также внешний ключ станции.Если вы удаляете станцию, вам нужно сначала удалить систему.Вы также можете использовать каскадное удаление.

...