我應該如何去更新數據庫中的一行?沒有更新方法,如果我使用add並且主鍵ID已經存在,我會得到一個異常。請儘可能提供一個例子。如何先使用實體框架代碼更新一行?
9
A
回答
21
最簡單的方法是:
(1)使用pk檢索現有行。
(2)更新屬性。
(3)在上下文中調用SaveChanges()。
例如
var student = context.Students.Find(42);
student.Description = "updated";
context.SaveChanges();
+1
這是最簡單的方法,但它使更多的查詢到數據庫不是嗎?我的意思是它必須做SELECT來找到你想要更新的實體,然後更新它。但是一般來說,你應該可以在沒有這個查詢的情況下使用UPDATE。有這樣的方式嗎? – Zoka 2012-11-28 21:17:36
17
這是一種方式,爲我工作,而無需進行查詢第一:
context.Students.Attach(student);
context.Entry(student).State = EntityState.Modified;
context.SaveChanges();
+0
另一個答案目前爲止我工作,但沒有在我的第一個代碼第一個項目。那麼,你知道你的答案爲什麼起作用嗎? – MVCDS 2015-05-18 00:01:31
相關問題
- 1. 使用實體框架4.3更新實體 - 代碼優先
- 2. 實體框架代碼首先使用Where子句更新
- 3. 實體框架代碼優先使用
- 4. 使用實體框架代碼首先
- 5. 實體框架使用代碼首先
- 6. 實體框架如何正確更新一個實體代碼?
- 7. 實體框架代碼首先,通過「先典」更新父
- 8. 使用實體框架更新一行
- 9. 用實體框架更新數據庫模式代碼首先
- 10. 實體框架 - 代碼優先 - 更新不會更改外鍵
- 11. 如何使用實體框架代碼優先
- 12. 如何使用實體框架代碼優先
- 13. 如何首先在實體框架代碼中使用MigratorScriptingDecorator?
- 14. 如何使用代碼優先實體框架指定外鍵
- 15. 實體框架代碼優先:更新SetInitializer拋出異常
- 16. 從實體框架4.1中更新排除列代碼優先
- 17. 刪除級聯更新到實體框架代碼首先
- 18. 實體框架 - 代碼優先,DbSet.Local不在UI中更新
- 19. 實體框架4.3 - 代碼優先 - 更新列表屬性
- 20. ClickOnce更新和實體框架代碼優先
- 21. 實體框架5.0代碼首先多對多更新
- 22. 實體框架5代碼優先 - 如何「重新開始」?
- 23. 實體框架建模代碼優先
- 24. 實體框架代碼優先映射
- 25. 實體框架代碼首先愁楚
- 26. 實體框架,代碼優先和datetimes
- 27. 與實體框架代碼優先
- 28. 在實體框架代碼優先4.1
- 29. 實體框架代碼首先FK場
- 30. 映射實體框架「代碼優先」
識別數據庫中的問題。 – DwB 2011-02-08 16:08:51