2010-12-02 43 views
0

在實體框架中使用自我跟蹤。客戶自我跟蹤錯誤

問題是,當我保存數據一切工作正常,但當我第二次保存它想要添加新的對象,但我只想更新舊的或不做anythjing,如果一個wasnt修改。

我會在下面描述它:

我有用戶實體。我創建它,然後創建上下文,保存它和銷燬上下文,但用戶不被破壞。

工作正常,用戶保存在數據庫中。然後我調用相同的方法。創建新的上下文,保存並有重複的密鑰違規(它不知道它必須更新用戶,但試圖插入它)。

Context.User.ApllyChanges(MyUser); Context.SaveChanges();

我嘗試了不同的變化,每次都有相同的錯誤。我究竟做錯了什麼 ?

感謝您的幫助。

當我點擊保存新的上下文創建,但我有同樣的EntityObject,我有。然後它想要添加新對象

回答

1

我已經與POCO合作過(不是自我追蹤),但我相信它也適用。

問題是,您必須知道它是否是New或Update,並將對象添加到上下文並將其狀態更改爲modified。如果您將其保留爲EF,則會嘗試將其插入數據庫。

+0

是不是這個SelfTracking知道發生了什麼事情的對象是它添加修改或任何東西。我希望保存狀態的用戶對象應該重置,以便下次保存,如果它沒有修改它會想要添加它:/如果用戶有很多collecions會怎麼樣:產品,汽車......我應該到處設置修改? – gruber 2010-12-02 15:57:09