2013-04-27 86 views
1

我只是玩弄實體框架代碼優先,並在關聯一組表的關係中找到了最佳方式。我可能會以完全錯誤的方式來看待這個問題,在這種情況下,如果有人能夠指引我朝着正確的方向,那將會很棒。SQL表關係(實體框架代碼優先)

基本上我有3個表格,2個主表格和1,它們包含兩個表格的公共字段。

現在,我被卡住的地方是我應該在2個主表格和第3個表格之間建立什麼類型的關係。兩個主表總是與第三個表具有1-1關係,但是第三個表或者與表1或表2不相關。

我可能沒有以正確的方式看待這個嗎?我應該擺脫第三張表,只是在兩個表中都有共同的字段?

這裏是我的表的結構看起來就像在momment:

表1:
- 標識
- RatePricingId
- 名稱
- CreatedOn
- ModifiedOn

表2:
- 標識
- RatePricingId
- 名稱
- StartOn
- 恩頓
- CreatedOn
- ModifiedOn

表3(通用字段)
- 標識
- 週一
- 星期二
- 星期三
- 星期四
- 星期五
- 週六
- 週日
- MinNights
- CheckInOutDays
- RateType
- CreatedOn
- ModifiedOn

乾杯,

湯姆

編輯:

I最初設置爲表1 & 2對錶3有一個外鍵,但是在實體框架中使用這個時出現了問題,這是因爲表3的POCO對象現在具有表1和表2的ICollection只會真正與其中一個表格對象有關。

回答

0

那麼,你的問題與實體框架,asp.net等沒有任何關係,但與數據庫設計更多。你應該重新打

唯一的區別似乎是

  • StartOn
  • 恩頓

因此,沒有任何更多的背景,我可能會只用一個表....或許不是辦法你的預期,但它似乎更簡單了我。

如果你想保留三個表,從table1到table3創建一個外鍵,也從table2到table3創建一個外鍵,你會沒事的。

+1

Pleun您好,感謝您的回覆。我用Entity框架標記它的原因是因爲;我原本做了你所說的(從表1/2到表3的外鍵),但是由於不知道POCO對象之間的關係是如何工作的,因此在實體框架中使用它時會出現問題。在表3 POCO對象上,當它只與表對象之一有關時,我將擁有表1和表2的ICollection。我會更新我的問題,嘗試更好地解釋我的問題,並刪除標籤asp.net和mvc。乾杯湯姆 – Tom 2013-04-27 21:42:15

+0

好的,謝謝你的更新 – Pleun 2013-04-28 15:55:19