我試圖通過外鍵更新EntityFramework 4(與Microsoft SQL Server數據庫)中的外鍵關係。更新EF 4.0中的外鍵關係通過設置Id
我使用.Single()
加載對象,然後嘗試設置爲Object.ExampleId
(Example表是一個對應於C#中的枚舉的參考表)。然後我在上下文中調用SaveChanges()
。
這樣做可以在本地使用,但在生產服務器上它失敗並且似乎掛起。使用調試語句我已將範圍縮小到實際設置標識的行。
我能夠通過加載整個示例對象並執行Object.Example = loadedExample
而不是Object.ExampleId = exampleId
來解決此問題。
我的問題是爲什麼這樣?其他地方,我已經能夠通過設置Id來更新關係。這是一種不好的做法嗎?
不,它是不壞的做法 - 一旦FK暴露你應該使用它們來設置關係。必須有別的東西。在你的開發中。機器使用SQL分析器並檢查分配Id時是否沒有延遲加載。 – 2011-05-23 16:19:07