2010-08-08 117 views
0

在數據庫中有兩個表。多個相似表的一個實體

他們有完全相同的列,只是他們之間的差異 - 他們有不同的名字。假設我有TableSea與列Id和名稱和TableOcean具有相同的列ID和名稱。

我想使用EF 4能夠CRUD操作,我也想使用存儲的procs映射插入更新和刪除操作。

我已經爲第一個表創建了POCO實體,並且我創建了存儲過程並將它們映射到實體模型。一切運作良好。

如何在不爲第二個表創建新實體的情況下使用兩個表?

回答

0

AFAIK,你不能,你肯定不應該!

如果你有兩個相同的數據庫表,那麼這意味着下列之一:

  1. 兩個表鏡密切 相關的概念(如海洋 在你的例子)。
  2. 兩張表 鏡像不同的概念,其中只有 意外地具有相同的 屬性。

取決於哪個方案更接近現實,你有這兩種設計方案:

  1. 合併兩個表,並添加 Type屬性(列),然後映射 它一個實體類型。您可能會在 與 有不同的子類別,或者您的 可能會附加Type 屬性 - 無論哪個適合 您。
  2. 有兩張表。這意味着:有兩個不同的概念。因此,這必須由商業模式中的兩個不同實體來反映。

在任何情況下,在數據庫中擁有一個實體表意味着在商業模型中擁有一個實體類。如果沒有這樣的1:1映射,那麼設計顯然是有問題的!

Thomas

相關問題