Требуется Entity Framework: необязательное отношение 1 к 1 с двумя свойствами навигации - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь установить обязательное: необязательное соотношение 1: 1 между двумя объектами, где оба объекта имеют свойства навигации, ссылающиеся друг на друга.Мне нужен только один внешний ключ для объекта LocationPhoto должно быть Location, но у Location не должно быть Photo

. Вот обе модели, у меня нет дополнительного Fluent-кода, описывающего отношения.

public class Photo
{
    [Column("PhotoID")]
    public long ID { get; set; }

    [InverseProperty("Photo")]
    [Required]
    public virtual Location Location { get; set; }
}


public class Location
{
    [Column("LocationID")]
    public long LocationID { get; set; }

    public long? PhotoID { get; set; }
    [ForeignKey("ID")]
    public virtual Photo Photo{ get; set; }
}

Создаваемый sql-код создает ограничение, указывающее на неверный внешний ключ объекта Photo.

FOREIGN KEY FK_dbo.Photo_dbo.Location_PhotoID   No Action   No Action   Enabled Is_For_Replication  PhotoID
                        REFERENCES Relationships.dbo.Location (LocationID)

1 Ответ

0 голосов
/ 23 мая 2018

Атрибут должен быть выше свойства photoid.

public class Location
{
    [Column("LocationID")]
    public long LocationID { get; set; }

    [ForeignKey("ID")]
    public long? PhotoID { get; set; }

    public virtual Photo Photo{ get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...