如何避免在數據庫中創建一個名爲「Discriminator」的列,如果我從Model類繼承業務類(模型類映射到數據庫表)。因爲此刻如果我繼承我的業務類(例如細節)到現有模型類(即DataSpecific),它會要求代碼首先遷移。在遷移中,我可以將辨別器視爲新列。我真的不想要這個。因爲原始模型類正在整個應用程序中使用,並且代碼正常工作。如何在'Code First Entity Framework'中避免'discriminator'列
我怎樣才能阻止 「descriminator」 欄目的創建
C#代碼:
模型類
public class DataSpecific
{
}
業務內容類
public class Specific
{
}
因此我可以在遷移中看到以下代碼
我該如何避免這種情況?
那是因爲你使用的TPH(每個層次結構表)。選擇TPT或TPC,您將避免使用「Discriminator」列。請參閱https://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/implementing-inheritance-with-the-entity-framework-in-an-asp-net -mvc-application – haim770
有沒有流利的api命令或者我們可以通過哪種方式指示實體框架使用TPT或TPC? – Usman
是的。這將是'ToTable(「...」)'。見https://weblogs.asp.net/manavi/inheritance-mapping-strategies-with-entity-framework-code-first-ctp5-part-3-table-per-concrete-type-tpc-and-choosing-strategy -guidelines – haim770