Entity framework core EF Core 2.0无法确定关系

Entity framework core EF Core 2.0无法确定关系,entity-framework-core,Entity Framework Core,我最近刚刚将我的解决方案/项目从.NET Core 1.1升级到2.0,包括EntityFramework Core。我现在得到一个错误,我从来没有从EF核心1.1 “无法确定“Person”类型的导航属性“InsurancePolicy.Person”表示的关系。” 类/实体定义如下 public class InsurancePolicy { [Key] public Guid Id { get; set; } [ForeignKey( "InsuranceComp

我最近刚刚将我的解决方案/项目从.NET Core 1.1升级到2.0,包括EntityFramework Core。我现在得到一个错误,我从来没有从EF核心1.1

“无法确定“Person”类型的导航属性“InsurancePolicy.Person”表示的关系。”

类/实体定义如下

public class InsurancePolicy
{
    [Key]
    public Guid Id { get; set; }

    [ForeignKey( "InsuranceCompanyId" )]
    public InsuranceCompany InsuranceCompany { get; set; }
    [Required]
    public int InsuranceCompanyId { get; set; }

    [ForeignKey( "PersonId" )]
    public Person Person { get; set; }
    [Required]
    public Guid PersonId { get; set; }

    [ForeignKey( "PolicyHolderId" )]
    public Person PolicyHolder { get; set; }
    [Required]
    public Guid PolicyHolderId { get; set; }

    public string GroupId { get; set; }
    public string MemberId { get; set; }
}
如果删除Person/PersonId属性,我只会在不同的实体/属性上得到相同的错误。EF 2.0中正在发生其他事情,或者改变了这种方式。这在EF1.1中运行良好,我能够运行迁移并部署数据库。升级到2.0后,如果不出现上述错误,我将无法调用我的DbContext。

这是EF 2.0中已知的错误

目前的解决方法是使用Fluent API显式定义关系

例如(从提供的链接):

modelBuilder.Entity(e=>
{
e、 HasOne(r=>r.AccountManager).WithMany(u=>u.AccountManager关系).HasForeignKey(r=>r.AccountManagerId);
e、 HasOne(r=>r.SalesManager)。带有多个(u=>u.SalesManagerRelations)。HasForeignKey(r=>r.salesmanagerrid);
});

您是否可以显示关系的其他部分,即
类和相关的流畅配置(如果有)。这是一个已知但在EF 2.0范围内的配置。他们在这里跟踪它。哇,我认为EF Core 2.0是稳定的,并且是推荐的(至少文档上是这么说的)@IvanStoev是的,我认为这是一个非常重要的bug,可以发布到野外。
modelBuilder.Entity<Relation>(e =>
    {
       e.HasOne(r => r.AccountManager).WithMany(u => u.AccountManagerRelations).HasForeignKey(r => r.AccountManagerId);
       e.HasOne(r => r.SalesManager).WithMany(u => u.SalesManagerRelations).HasForeignKey(r => r.SalesManagerId);
    });