2011-01-12 75 views
0

這發生在ASP.NET MVC 2,.NET 4(EF 4)中。我的Address實體具有對Post參考的引用。 Zip是Post實體的主鍵。 Post實體中的另一個屬性是CityName。在我的視圖中,我允許用戶更改該地址的CityName(通過jquery)加載相應的Zip並將其存儲在隱藏字段中。UpdateModel()無法爲導航屬性(實體引用)分配新值

發佈時,這兩個值均正確發佈並綁定到Address的發佈參考。但是UpdateModel()無法更新它們。它表示Zip是實體實體密鑰的一部分,不能更改。

我很樂意通過新的Zip加載Post實體並手動將其分配給現有的地址,但對於我失去的所有其他屬性都希望依賴於UpdateModel()。

我該如何做到這一點?有人會認爲,在EF4這樣的東西已經解決..

回答

0

默認情況下,實體框架生成的類放在更改主鍵值的限制。這很好。任何原因你都不應該改變PK。在添加場景之外更改PK對於狀態跟蹤和系統的一般健康狀況具有相當大的影響。

要解決此問題,您需要告訴UpdateModel不要使用exclude參數更新主鍵。