我試圖創建兩個實體之間需要兩端的1對1關係。他們是基本的實體,這樣與EF代碼優先的一對一關係 - 外鍵不正確
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 Migration更新我的數據庫。當我生成將設置此關係的遷移時,遷移正確地標識了爲EntityB放置外鍵所需的事實,但它正在爲EntityA創建EntityA的主鍵的外鍵,像這樣:
.ForeignKey("dbo.TableForEntityB", t => t.EntityBID)
它應該使用EntityA的ID作爲外鍵。
有沒有人看到我在做什麼錯了?我很難過。我嘗試過使用WithRequiredDependent,並且所有這些都是在TableForEntityA上創建一個相同的情況。
謝謝。
你不可能需要兩端,這甚至不是EF限制,它是一個數據庫限制。其中一個實體總是必須是父實體(即先插入)。基於此,也許你可以更新你的問題,並得到答案。 – SOfanatic