我不想封装try catch块中的每个调用
是否有我可以订阅的事件,当连接丢失或超时时,我可以重新连接..
或某种不检查每个linq查询的方法。
如果没有,为什么不呢!
编辑:Linq to Entity有吗?
编辑:我正在使用Microsoft SQL Azure,它会丢弃很多连接。
编辑:我在每次调用db时打开一个新连接。所以它不是我打开连接。
答案 0 :(得分:1)
即使有这样的事件(不确定),你仍然不能依赖它。网络连接可能会突然中断,数据库引擎忙于执行其他查询,超时始终是可能的。无论原因如何,最好直接查看查询是成功还是失败。
答案 1 :(得分:1)
您可以考虑使用writing your own LINQ provider(使用现有的大部分功能)来准确添加此功能。它可能比每次处理异常都要少。
答案 2 :(得分:0)
你为什么会这么多滴?您是否长时间挂在数据上下文对象上?构建一个是很便宜的,所以当你开始一个新的工作单元时,只需构建一个新的工作单元。
最好在更短的生命周期内犯错误 - 一个工作单元甚至是无状态服务器的单一请求都是很好的模式。