【发布时间】:2018-03-24 23:24:14
【问题描述】:
使用 Entity Framework Core 2 我有以下实体:
public class Parent {
public Int32 Id { get; set; }
public virtual Child Child { get; set; }
}
public class Child {
public Int32 ParentId { get; set; }
public virtual Parent Parent { get; set; }
}
我希望父母和孩子建立一对一的关系。
我希望 ParentId 是实体 Child 的 FK 和 PK ...
所以我尝试了以下配置:
builder.Entity<Parent>().ToTable("Parents");
builder.Entity<Parent>().Property(y => y.Id).UseSqlServerIdentityColumn();
builder.Entity<Child>().ToTable("Childs");
builder.Entity<Child>().HasOne(x => x.Parent)
.WithOne(x => x.Child)
.HasForeignKey<Child>(x => x.ParentId);
但我收到以下错误:
The entity type 'Child' requires a primary key to be defined.
知道如何解决这个问题吗?
【问题讨论】:
-
像往常一样,当 PK 名称不符合约定时 -
builder.Entity<Child>().HasKey(x => x.ParentId);。 -
我之前尝试过,但我一直收到同样的错误......
-
再试一次? :) 应该管用。没有它就无法工作。
-
是的,毕竟它有效。我错过了将其中一个实体添加到模型中。您可以添加您的答案以便我标记它吗?