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