DbSets с подтипами: дочерняя / зависимая сторона не может быть определена для отношений один-к-одному - PullRequest
1 голос
/ 27 марта 2019

Подобно этому вопросу , я пытаюсь вывести свою объектную модель EF из квадрата, и НЕ НРАВИТСЯ связанному вопросу, на самом деле я настраиваю вызовы modelBuilder внутри фактического DbContext, а не снимка,Это выглядит примерно так:

modelBuilder.Entity<MyUser>()
        .HasOne(a => a.MyProfile)
        .WithOne(a => a.MyUser)
        .HasForeignKey<MyProfile>(c => c.Id)
        .HasPrincipalKey<MyUser>(x => x.UserIntId);

Одно из отличий состоит в том, что и MyUser, и MyProfile наследуются от других типов, UserEntity и ProfileEntity, которые, в свою очередь, имеют связанные свойства, т.е. UserEntity имеет UserEntity.Profile типа ProfileEntity и ProfileEntity имеет ProfileEntity.User типа UserEntity.

Итак, я получаю исключение:

System.InvalidOperationException: Дочерняя / зависимая сторона не может быть определена для отношения «один к одному» между «UserEntity.Profile» и «ProfileEntity.User».Чтобы определить дочернюю / зависимую сторону отношения, настройте свойство внешнего ключа.Если эти переходы не должны быть частью одного и того же отношения, настройте их без указания обратного.См. http://go.microsoft.com/fwlink/?LinkId=724062 для получения более подробной информации.

Я не уверен, как разрешить это исключение в этом случае без полного удаления наследства (которого я хотел бы избежать, чтобы сэкономить времянеобходимость сделать рефакторинг базовых библиотек).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...