我不想将每个调用都封装在 try catch 块中
有没有我可以订阅的事件,当连接丢失或超时时,我可以重新连接..
或某种不检查每个 linq 查询的方法。
如果不是,为什么不呢!
编辑:Linq to Entity 有这个吗?
编辑:我正在使用 Microsoft SQL Azure,它会丢失很多连接。
编辑:我在每次调用数据库时打开一个新连接。所以不是我让连接保持打开状态。
我不想将每个调用都封装在 try catch 块中
有没有我可以订阅的事件,当连接丢失或超时时,我可以重新连接..
或某种不检查每个 linq 查询的方法。
如果不是,为什么不呢!
编辑:Linq to Entity 有这个吗?
编辑:我正在使用 Microsoft SQL Azure,它会丢失很多连接。
编辑:我在每次调用数据库时打开一个新连接。所以不是我让连接保持打开状态。
即使有这样的事件(不确定)你仍然不能依赖它。网络连接可能会突然中断,数据库引擎忙于执行其他查询,超时总是可能的。不管是什么原因,最好直接观察查询是成功还是失败。
您可以考虑编写自己的 LINQ 提供程序(使用许多现有的功能)来准确添加此功能。结果可能比每次都处理异常要少。
为什么你会得到这么多滴?您是否长时间挂在数据上下文对象上?建造一个很便宜,所以当你开始一个新的工作单元时,只需建造一个新的。
从这个msdn 博客
最好在生命周期较短的情况下犯错 - 一个工作单元甚至是对无状态服务器的单个请求都是很好的开始模式。