EL *_*OJO 4 entity-framework-core
我最近刚刚将我的解决方案/项目从 .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; }
}
Run Code Online (Sandbox Code Playgroud)
如果我删除 Person/PersonId 属性,我只会在不同的实体/属性上得到相同的错误。其他事情正在发生或在 EF 2.0 中完成此操作的方式已更改。这在 EF 1.1 中运行良好,我能够运行迁移并部署数据库。升级到 2.0 后,我无法在没有收到上述错误的情况下对我的 DbContext 进行任何调用。
这是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);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2923 次 |
| 最近记录: |