【发布时间】:2020-12-03 02:53:49
【问题描述】:
我正在执行代码优先迁移到我的 PostgreSQL 数据库。我已经根据我看到的一些示例配置了我的关系,但我对下面的错误感到困惑。
抛出异常:Microsoft.EntityFrameworkCore.dll 中的“System.InvalidOperationException” Microsoft.EntityFrameworkCore.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理 无法确定“ecommercecontent.identification”和“ecommercecontentidentification.ecommercecontent”之间的一对一关系的子/依赖方。要识别关系的子/依赖方,请配置外键属性。如果这些导航不应该是同一关系的一部分,请在不指定相反的情况下配置它们。详情请见http://go.microsoft.com/fwlink/?LinkId=724062。
我的代码示例如下,为简洁起见,删除了一些内容。
以下是有问题的两个类:
public class ecommercecontent
{
[Key]
public int ecommercecontentid { get; set; }
public string productnameenglish { get; set; }
public string productnamefrench { get; set; }
public string brandnameenglish { get; set; }
public string brandnamefrench { get; set; }
public ecommercecontentidentification identification { get; set; }
}
public class ecommercecontentidentification
{
[Key]
public int ecommercecontentidentificationid { get; set; }
public DateTimeOffset archivedate { get; set; }
public DateTimeOffset dateupdated { get; set; }
public DateTimeOffset startdate { get; set; }
public DateTimeOffset systemversion { get; set; }
public ecommercecontent ecommercecontent { get; set; }
}
这是我的 DbContext 类,带有 OnModelCreating 覆盖:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<ecommercecontent>()
.HasOne(a => a.identification)
.WithOne(b => b.ecommercecontent)
.OnDelete(DeleteBehavior.Cascade);
}
有什么想法我在这里做错了吗?
【问题讨论】:
-
您可以从关系的任一侧开始定义
.HasOne(...).WithOne(...)。.HasForeignKey<T>(...)告诉流利的 api 哪个是主要的,哪个是依赖的。
标签: c# postgresql entity-framework-core