2
我不確定這是否可能在EF中,但我創建了一堆類,並試圖讓EF爲我創建表。EF繼承和主鍵
現在EF創建我的表格很好,除了一個小問題。它創建的表爲:
人 - PERSONID(PK)
美孚 - PERSONID(PK) - FooId(INT)
浦 - PERSONID(PK) - PooId (INT)
理想情況下,我希望表Foo和Poo中的PersonId不是作爲主鍵的外鍵。這可能嗎?
modelBuilder.Entity<Foo>().HasKey(x => x.FooId).ToTable("Foo");
public class Person
{
public int PersonId { get; private set; }
}
public class Foo : Person
{
public int FooId { get; private set; }
}
public class Poo : Person
{
public int PooId { get; private set; }
}
是否有可能讓PersonI成爲FK而Foo表中的FooId是PK? –
是的,這是可能的。但在這種情況下,您應該手動創建數據庫,並首先使用代碼將實體映射到現有數據庫。 –
我不完全確定你想要做什麼可以先用代碼完成,而@ KirillBestemyanov的答案證實了這一點。看看Ladislav解釋如何使用設計器映射TPT的鏈接http://stackoverflow.com/questions/5439273/how-to-map-table-per-type-tpt-inheritance-in-entity-designer/5443033# 5443033 – MattSull