0
我試圖瞭解我需要做什麼才能在外鍵在基類中不存在時在多個派生類中引入相同的外鍵。外鍵是相同的類型,我可以使各種派生類都使用相同的列名,但是當我嘗試引入外鍵註釋時,實體框架6默默無法創建任何外鍵。實體框架6多個派生類中的代碼優先TPH外鍵
值得一提的是,如果我允許EF創建Bar_Name1而不是重新使用現有列,它會適當地添加外鍵。但是我來自一個關係數據庫背景,它冒犯了我的敏感性,爲同一件事情擁有多個列。
我希望能夠堅持使用註解來標記我的代碼,但如果這是註解無法完成但可以使用Fluent API完成的事情,我願意深入研究那。
public class Foo
{
[Key]
public string Name { get; set; }
}
public class FooSub1 : Foo
{
[Required, Column("Bar_Name")]
public string Bar_Name { get; set; }
[ForeignKey("Bar_Name")]
public Bar Bar { get; set; }
}
public class FooSub2 : Foo
{
[Required, Column("Bar_Name")]
public string Bar_Name { get; set; }
[ForeignKey("Bar_Name")]
public Bar Bar { get; set; }
}
public class Bar
{
[Key]
public string Name { get; set; }
}
感謝您的回覆。 爲了記錄,我最終將所有的字段放在基表中的多個派生表中,並選擇爲我的應用程序創建接口來使用。通過接口限制底層對象的可用性是非常容易的,這可能是一種更好的方式來處理所有事情。 – 2014-12-05 21:04:05