2011-01-08 117 views
1

我首先使用代碼(實體框架)。當我調用DbContext.SaveChanges()時,我得到一個主鍵約束,因爲這裏已經有這樣一條記錄。如果它已經存在於數據庫中,我想覆蓋該記錄。這是最簡單的方法。每次我調用savechanges來重複主鍵在我的項目中都太難了。謝謝代碼優先 - 主鍵約束

回答

0

不幸的是,EF要求您知道您是否添加或修改實體。所以唯一的方法是:

  • 將這些知識保存在您的應用程序中,並在ObjectStateManager中設置合適的EntityState。
  • 首先加載實體。如果存在修改其數據,如果不創建新實體並將其添加到上下文。