gpt4 book ai didi

entity-framework-core - EF Core 2.0 无法确定关系

转载 作者:行者123 更新时间:2023-12-04 02:30:22 24 4
gpt4 key购买 nike

我最近刚刚将我的解决方案/项目从 .NET Core 1.1 升级到 2.0,包括 EntityFramework Core。我现在收到一个错误,我从未从 EF Core 1.1 中得到过。

“无法确定类型为‘人’的导航属性‘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 中完成此操作的方式已更改。这在 EF 1.1 中运行良好,我能够运行迁移并部署数据库。升级到 2.0 后,我无法在没有收到上述错误的情况下对我的 DbContext 进行任何调用。

最佳答案

这是一个已知的 issue在 EF 2.0 内。

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

例如(来自提供的链接):

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);
});

关于entity-framework-core - EF Core 2.0 无法确定关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45738966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com