Подобно этому вопросу , я пытаюсь вывести свою объектную модель 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 для получения более подробной информации.
Я не уверен, как разрешить это исключение в этом случае без полного удаления наследства (которого я хотел бы избежать, чтобы сэкономить времянеобходимость сделать рефакторинг базовых библиотек).