EF не дружит со мной. Мне нужно создать отношение «один к одному», которое имеет отдельные первичные ключи, сохраняя при этом удобство навигационных свойств. Но независимо от того, что я пытаюсь сделать, EF выдаст мне ошибку, если я не удалю свойство навигации.
Вот отличная иллюстрация проблемы. Как видите, я не могу объединить первичные ключи. И я не хочу имитировать отношения 1 .. *, потому что отношения всегда 1-1.
public class SingleParent
{
public Guid ParentID { get; set; }
public virtual OnlyChild Child { get; set; }
}
public class OnlyChild
{
public Guid ChildID { get; set; }
public virtual SingleParent Parent { get; set; }
}
// Parent and Child cannot share a primary key because a pediatrician only treats children.
public class Pediatrician
{
public Guid PediatricianID { get; set; }
public virtual List<OnlyChild> Patients;
}
Как мне получить такие свойства навигации, чтобы Parent.Child <==> Child.Parent? Я бы предпочел сделать это с аннотациями данных, чтобы они соответствовали остальному коду. Любая мудрость будет с благодарностью!