我應該如何去更新數據庫中的一行?沒有更新方法,如果我使用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. 實體框架代碼首先使用Where子句更新
- 2. 實體框架代碼優先使用
- 3. 用實體框架更新數據庫模式代碼首先
- 4. 如何首先在實體框架代碼中使用MigratorScriptingDecorator?
- 5. 如何使用實體框架代碼優先
- 6. 如何使用代碼優先實體框架指定外鍵
- 7. 實體框架 - 代碼優先,DbSet.Local不在UI中更新
- 8. 刪除級聯更新到實體框架代碼首先
- 9. 從實體框架4.1中更新排除列代碼優先
- 10. 實體框架5代碼優先 - 如何「重新開始」?
- 11. 實體框架建模代碼優先
- 12. 實體框架,代碼優先和datetimes
- 13. 與實體框架代碼優先
- 14. 我在實體框架代碼首先
- 15. 實體框架 - 代碼優先方法
- 16. 實體框架|代碼優先|從CultureInfo.Name
- 17. 實體框架代碼首先愁楚
- 18. 實體框架代碼首先FK場
- 19. 實體框架 - 代碼優先Fluent API:ErrorMessage?
- 20. 映射實體框架「代碼優先」
- 21. 實體框架代碼優先映射
- 22. 實體框架代碼首先+ MySQL ... NullReferenceException
- 23. 實體框架+ PostgreSQL代碼優先
- 24. 部署實體框架代碼首先
- 25. 實體框架代碼優先 - 關係
- 26. 變化實體框架代碼首先
- 27. 如何使用實體框架代碼優先方法編輯實體?
- 28. 實體框架4.1 RC(代碼優先) - 實體沒有通過關聯更新
- 29. 如何更新實體框架7遷移和數據庫 - 代碼優先
- 30. 如何使用實體框架代碼優先將實體持久保存到數據庫時執行代碼?
識別數據庫中的問題。 – DwB 2011-02-08 16:08:51