类似于this question,我试图弄清我的EF对象模型,不喜欢链接的问题,实际上是在实际的DbContext(而不是快照)中设置modelBuilder调用。看起来像这样:
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
的{{1}}。
所以,我得到的例外是:
System.InvalidOperationException:无法确定'UserEntity.Profile'和'ProfileEntity.User'之间的一对一关系的子/依赖端。要标识关系的子级/从属端,请配置外键属性。如果这些导航不应该是相同关系的一部分,请在不指定反向关系的情况下进行配置。有关更多详细信息,请参见http://go.microsoft.com/fwlink/?LinkId=724062。
我不确定在这种情况下如何解决此异常而又不完全删除继承(我想避免这种情况,以便节省时间来进行基础库的重构)。