我正在尝试在需要两端的两个实体之间创建一对一的关系。它们是基本实体,就像这样
public class EntityA
{
public int? EntityAID {get; set;}
public virtual EntityB EntityB {get; set;
}
public class EntityB
{
public int? EntityBID {get; set;}
public virtual EntityA EntityA {get; set;
}
我有一个用于配置关系的 EntityA 的 EntityTypeConfiguration 对象。我希望 entityA 成为关系中的主体,如果我正确理解此过程,这意味着 EntityB 将在其数据库表中具有 EntityA 的外键。这是我的配置声明
HasRequired(e=>e.EntityB).WithRequiredPrincipal(e=>e.EntityA);
我正在使用 Code First 迁移更新我的数据库。当我生成将建立这种关系的迁移时,迁移正确地识别了它需要在 EntityB 的表上放置外键的事实,但是它正在使用 EntityB 的主键为 EntityA 创建表的外键,像这样:
.ForeignKey("dbo.TableForEntityB", t => t.EntityBID)
它应该使用 EntityA 的 ID 作为外键。
有人看到我做错了吗?我难住了。我试过使用WithRequiredDependent,所做的只是在TableForEntityA 上创建一个相同的情况。
谢谢。