具有子类型的DbSet:无法确定子关系/依存关系的一对一关系

时间:2019-03-26 21:17:31

标签: c# asp.net-core entity-framework-core

类似于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);

此处的一个区别是MyUserMyProfile都从其他类型UserEntityProfileEntity继承,而其他类型又具有关联的属性,即UserEntity具有UserEntity.Profile类型的ProfileEntityProfileEntity具有类型ProfileEntity.User的{​​{1}}。

所以,我得到的例外是:

  

System.InvalidOperationException:无法确定'UserEntity.Profile'和'ProfileEntity.User'之间的一对一关系的子/依赖端。要标识关系的子级/从属端,请配置外键属性。如果这些导航不应该是相同关系的一部分,请在不指定反向关系的情况下进行配置。有关更多详细信息,请参见http://go.microsoft.com/fwlink/?LinkId=724062

我不确定在这种情况下如何解决此异常而又不完全删除继承(我想避免这种情况,以便节省时间来进行基础库的重构)。

0 个答案:

没有答案