我在這裏有一個錯誤,無法完全理解它背後的邏輯。我正在使用實體框架6和模型優先方法。我設計了相互引用這樣的兩個表:如何將外鍵映射到兩個相互引用的實體中
基本上,一個賬戶需要在一個公司,而公司必須有一個帳戶爲管理員。但是,我從EF驗證程序中收到錯誤:
錯誤3014:映射從224行,249行開始的映射片段時出現問題:從表CompaniesSet(Id)的外鍵約束'CompaniesAccounts1'到表AccountsSet (Id):'沒有在模型中執行。需要創建關聯或繼承關係來強制執行此約束。
CompaniesAccounts1
是您在這裏看到的第一個協會(1 ... *),Accounts
是委託人。第二協會有Companie
作爲委託人。有人知道我爲什麼得到這個錯誤?
所有4個屬性都是不可空的Int32
類型。
從關係的角度來看,你在這裏試圖做的是不可能的。至少有一個屬性必須爲空。你正在這裏創建一個雞和雞蛋的問題。您需要公司記錄才能附加管理員帳戶,但您需要該帳戶的帳戶記錄才能在公司記錄中指定爲管理員帳戶。 – AgapwIesu
好吧我改變了CompanyId爲空,第二個關係分別爲*和0..1。我仍然得到錯誤。我還錯過了什麼嗎? – LeonidasFett
嗯,很奇怪。我檢查了設計器的xml文件,發現一些來自不再存在的關聯的工件。刪除這些後,sql文件和Model.Context.tt和Model.tt,它自己排除。我現在在一個關聯上獲得了0..1和*,而在另一個上獲得了0和1。 – LeonidasFett