2013-08-29 77 views
2

後,這是我的表(整個事情的一部分,活動桌還有與其他表的其他關係):錯誤112和錯誤113添加外鍵數據庫

enter image description here

添加外鍵後從我的Visual Studio數據庫更新我的模型EDMX,它來到了這2個錯誤:

錯誤2錯誤112:該類型的引用約束的從屬角色 所有屬性的必須是一樣的相應 主體角色中的屬性類型。 實體'istellarModel1.singalong'上的'ActivityID'與實體'istellarModel1.activity'上 參考約束 'FK_singalong_activity'的 類型屬性'ActivityID'不匹配。

錯誤1錯誤113:多重不處於 關係 'FK_singalong_activity' 角色 '活動' 有效。因爲依賴角色 中的所有屬性都可以爲空,所以主體角色 的多重性必須爲'0..1'。

我檢查了我的上口ActivityID具有相同類型的活動表的活動ID,我不明白什麼錯誤113,其實就是,我是新來的數據庫,起初我有許多表不鏈接,所以我連接它們後,在Visual Studio(使用實體框架)更新我的模型(EDMX),它給了我錯誤。

對此有任何指導嗎?

enter image description here

回答

1

113錯誤聽起來像singalong您的活動ID可爲空。

這是說,多對一是無效的,如果依賴角色是可空的。

這也似乎暗示了112的原因 - 這很可能是因爲它也考慮了NOT NULL的一部分類型,所以這兩列是不同的。

一個快速解決方案可能是確保singalong.ActivityID標記爲NOT NULL但如果您希望沒有相應活動的singalong記錄,則這會有問題。

我知道如何修復它,至少在最初的時候,但可能會因爲知識更豐富的DBA而皺起眉頭:我只是簡單地添加一個虛擬活動(例如活動id = 0)你通常在singalong表中有NULL。我不建議你做,但它是一個可能性將審查作爲一個臨時的解決辦法,是遠遠實用主義者比教條主義的:-)

+0

ActivityID在上口已經沒有標明NULL,有導致此問題的任何其他問題? ,錯誤113談到主角和0..1的關係。這讓我更加困惑。 – user2376998

+0

@ user2376998,不,沒有更詳細地看到實際的表定義。但你可能想檢查你的評論。短語「因爲所有的依賴角色的屬性都是可空的」似乎不同意。不是說你錯了,只是看起來有點不協調。 – paxdiablo

+0

我已經更新,包括我的表細節的屏幕截圖,你需要更多的細節? – user2376998