簡體   English   中英

如何在使用Linq到SQl自動丟失連接時重新連接丟失的連接

[英]How to reconnect to a lost connection when it is lost using Linq to SQl automagically

我不想在try catch塊中封裝每個調用

是否有我可以訂閱的事件,當連接丟失或超時時,我可以重新連接..

或某種方式不檢查每個linq查詢。

如果沒有,為什么不呢!

編輯:Linq to Entity有嗎?

編輯:我正在使用Microsoft SQL Azure,它會丟棄很多連接。

編輯:我在每次調用db時打開一個新連接。 所以它不是我打開連接。

即使有這樣的事件(不確定),你仍然不能依賴它。 網絡連接可能會突然中斷,數據庫引擎忙於執行其他查詢,超時始終是可能的。 無論原因如何,最好直接查看查詢是成功還是失敗。

您可以考慮編寫自己的LINQ提供程序 (使用現有的大部分功能)來添加此功能。 它可能比每次處理異常都要少。

你為什么這么多滴? 您是否長時間掛在數據上下文對象上? 構建一個是很便宜的,所以當你開始一個新的工作單元時,只需構建一個新的。

來自這個msdn博客

最好在更短的生命周期內犯錯 - 一個工作單元甚至是無狀態服務器的單一請求都是良好的模式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM