我在單個上下文中使用實體框架添加一組對象,但希望處於事務中。我該怎麼做?在實體框架中的單個事務中更新多個對象
回答
您可以查看MSDN上的How to: Manage Transactions in the Entity Framework文章。基本上你會使用TransactionScope類來劃分事務的邊界。
您可以在上下文連接對象上創建事務對象,然後您可以使用事務提交或具有常規機制或事務範圍的回滾。
dbContext.Connection.BeginTransaction()
如果您對所有的修改,你已經有交易打電話SaveChanges
只有一次因爲SaveChanges
內部檢查,如果線程關聯交易(例如通過TransactionScope
),如果沒有它會在內部創建一個新的致電connection.BeginTransaction
。
我面臨的問題是我將創建一個Template對象,並遵循具有作爲TemplateId屬性的TemplateLayouts對象。爲了首先獲得TemplateId,我必須在調用AddObject方法後調用SaveChanges,然後在添加所有佈局後添加一個SaveChanges。我想在單一交易中合併所有。 – VJAI
然後你做錯了。您的TemplateLayout應該具有Template屬性,並通過將此屬性設置爲新的Template實例,EF將處理其他所有內容。 –
- 1. 在單個事務中對多個實體的更改
- 2. 更新實體框架中的多個實體
- 3. 實體框架多對多對單個對象
- 4. 實體框架插入多個對象
- 5. 多對多實體框架更新
- 6. 實體框架4多對多更新
- 7. 在實體框架中實現「每個對象一個實例」
- 8. 實體框架更新現有對象
- 9. 實體框架 - 更新對象
- 10. 更新實體框架中的實體
- 11. 實體框架:更新實體時更新另一個實體
- 12. 實體框架/ EF4:在事務處理中插入多個相關實體
- 13. 實體框架附加一個持久對象的新對象
- 14. 實體框架 - 插入對象與多個相關的對象
- 15. 更新實體框架中的多對多關係
- 16. 如何更新實體框架7中的多對多關係?
- 17. 無法更新實體框架中的多對多關係
- 18. 實體框架中的一個事務中的多個數據庫
- 19. 實體框架包含一對多關係中的單個對象
- 20. 實體框架6-無法更新表中的單個列
- 21. 無法更新實體框架中的單個屬性
- 22. 在實體框架中有更新對象有關係
- 23. 檢索/更新實體框架POCO對象已經在ObjectContext中
- 24. 多對多關係 - 實體框架正在創建新對象
- 25. 阻止分離的實體框架對象中的空更新
- 26. 如何簡單地在實體框架中更新實體?
- 27. 實體框架Core從表中檢索單個對象
- 28. 使用ADO.Net實體框架管理事務 - 更新多個數據庫
- 29. 實體框架更新一個父實體更新另一個父實體
- 30. 實體框架:創建和更新WPF中的相關對象
目前我正在使用TransactionScope。它會影響性能嗎? – VJAI