Entity framework core EF Core 2.0无法确定关系
我最近刚刚将我的解决方案/项目从.NET Core 1.1升级到2.0,包括EntityFramework Core。我现在得到一个错误,我从来没有从EF核心1.1 “无法确定“Person”类型的导航属性“InsurancePolicy.Person”表示的关系。” 类/实体定义如下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
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);
});