我已經創建了一個基本的實體框架測試項目,該項目使用Code-First方法來填充具有兩個表的數據庫。爲什麼EntityFramework代碼首先忽略代碼中設置的關鍵值
但是,我注意到框架似乎是自動分配一個值作爲外鍵用於另一個表的條目,儘管我已經在代碼中設置了該值。
通過調試器檢查時,我可以看到對象的屬性是正確的,直到調用SaveChanges()爲止,但在檢查數據庫時,我設置的int已被自動生成的值覆蓋。
我可以通過應用下列屬性的財產解決這個問題:
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
但是,我認爲,如果沒有值已在代碼中設置只自動生成的值。我錯了,還是這樣的行爲是可以預料的?
我已經注意到,對於不充當外鍵的主鍵,相同的行爲並非如此。
任何幫助非常感謝。
請給我們一些代碼。 –
很難說沒有看到更多,但我會猜測。您正在設置外鍵列上的[Key]屬性?如果是這樣,那麼不要。據我瞭解,[Key]是主鍵,不應該用來定義外鍵。 –
非常感謝,雖然我沒有添加任何屬性到屬性,直到我遇到問題。 – user1762339