2013-04-24 60 views
0

我有我的數據庫中有6個100%相等的表,唯一的變化是名稱。 的是這樣的:實體框架,C#和超類

Offers_1,Offers_2,Offers_3等..

如果我在C#的形式使用實體框架,我得到6個不同的類別,其原因是由表命名。 有沒有一種方法可以爲這些表使用父級/超級類? 也許他們可以有一個標識符說明他們是哪個號碼或類似的東西。

我確定其他人肯定有過這個問題。

而那些想知道爲什麼我有6個相等的表。 我們已經在我們公司內自行切換進出產品,所以我們可以在離線表格上進行操作,並在在線表格中具有最高性能。

希望有幫助的頭腦可以引導我走向光明:)

在此先感謝

+2

你的問題到底是什麼?如果你還沒有試圖自己解決這個問題,那表明你還沒有完全弄清楚問題所在。它不清楚你的意思是「超類」,這個術語不是一個標準的C#編程術語。 – 2013-04-24 12:32:39

+0

我也想知道做這樣的事情會有什麼好處。 – 2013-04-24 12:33:56

+0

優點是我可以使用我係統中的類。 而不是創建一個新的Offer_1 AND Offer_2等等...... 我可以創建一個「Offer」,這將是系統範圍 – Oxholm 2013-04-24 12:38:57

回答

1

您似乎想要使用Table Per Inheritance(TPH):一個表爲多個類型。

這是首先解釋模型here

這是代碼優先解釋(例如)here

+0

嗯,這似乎很有趣,但它可以做到這一點,而不會影響數據庫(並因此不創建一個新表)? 如果它可能是所有表類繼承的類或其他東西,我會是完美的 – Oxholm 2013-04-24 13:00:34

+0

不,對於TP使用TPH必須有鑑別器列。我DB存在,但你應該使用TPT(Table Per Type)。例如有一個基類。爲基類派生類型,首先使用代碼至少用'HasTable'方法在上下文中配置派生類型。 – tschmit007 2013-04-24 13:25:22

0

,如果你使用的是SQL到LINQ表可以從.dbml文件編輯的行名。 通過這樣做,你應該能夠告訴女巫你正在使用你的C#代碼。