3
A
回答
2
在保存更改期間連接中斷時,您只會收到異常。在由於異常而未提交的事務中完成保存,並且EF不會將其當前更改設置爲已完成。你可以簡單地嘗試在特定發生異常,再次保存更改 - EF會嘗試打開一個新的連接,並執行相同的事務
爲前: 好,也許是這樣的:
public virtual void SubmitChanges()
{
if (DataContext != null)
{
try
{
DataContext.SubmitChanges();
}
catch (Exception whenILostMyConnection)
{
SubmitChanges(); //recall the sumbitChanges
}
}
}
0
您可以在Windows Azure源代碼中看到答案。 Azure CRUD操作通常會將它們放入循環中,這些循環會重複執行多次相同的操作,從而導致某些特定的異常。但是你必須非常小心地處理重試的情況,因爲在大多數情況下它會讓你的應用程序變慢。
相關問題
- 1. 實體框架句柄連接丟失
- 2. 如果連接丟失或超時,刷新數據庫連接
- 3. NodeJS + Socket.io連接丟失/重新連接?
- 4. 實體框架和數據庫連接
- 5. 如何在連接丟失時重新連接jconsole
- 6. 如何在NSStream丟失連接時重新連接?
- 7. 如何使net.Dial在Go重新連接,如果連接丟失?
- 8. 連接到數據庫失敗,實體框架
- 9. 實體框架4.1連接到外部數據庫失敗
- 10. 實體框架在運行時連接到多個數據庫
- 11. 重新連接後TCP數據丟失。
- 12. 更改項目目標框架時丟失數據庫連接
- 13. 死鎖,連接到數據庫丟失
- 14. 實體框架左連接
- 15. .NET實體框架連接失敗
- 16. 如何在實體框架連接上更改數據庫
- 17. 連接丟失後自動重新連接到MySql
- 18. 丟失連接後重新連接到COM
- 19. 連接丟失後重新連接到NamedPipeClientStream(.NET)
- 20. Spring MqttPahoMessageDrivenChannelAdapter丟失連接:連接丟失;正在重試
- 21. Spring Mqtt:MqttPahoMessageDrivenChannelAdapter - 丟失的連接:連接丟失;正在重試
- 22. 實體框架何時打開和關閉數據庫連接?
- 23. 重新連接數據庫,如果連接重新啓動
- 24. 當數據庫連接丟失時,如何在PHP中重新連接並重試MySQL查詢?
- 25. EF:如果斷開連接,重新連接到數據庫
- 26. 如果連接丟失,goinstant api是否會重新連接?
- 27. 實體框架 - 內連接到左連接
- 28. 實體框架連接字符串連接到文件
- 29. 實體框架:更新連接表
- 30. 實體框架批量更新數據庫連接字符串
好吧聽起來不錯,但是當我在ViewModel中並且它試圖執行LINQ查詢並因連接關閉或斷開而失敗時,我該怎麼辦?我已經註冊了一個事件,當連接狀態改變時觸發,並且當我鬆動連接到DB時,它似乎不會觸發。那麼我如何處理這個問題呢? – Willem
我並不是很擅長給出「好」的設計模式解決方案,但我認爲如果你集中你的數據庫操作方法,這樣你就可以輕鬆地管理你的交易對數據庫,因爲,前創建一些適當的結果數據操縱器類,管理像SaveChanges,Commit等簡單操作。 – m4ngl3r