資料庫查詢結果異動時,連線已經關閉的解決方法
基本上,資料庫的連線會一直保持開啟的狀態,直至查詢的結果被使用。
第一、倘若在資料庫的連線關閉之後,依舊想要使用查詢的結果,可以使用ToList<TSource>將查詢結果快取。
第二、通常物件僅被處理一次。
換而言之,當查詢結果並未被快取,又經過二次以上的處理,必須將Multiple Active Result Sets開啟,方能夠在單一的連線上進行多個批次的資料異動,但是MARS並不是同步處理多個作業的機制。
參考資料:
[1]Frequently Asked Questions
http://msdn.microsoft.com/en-us/library/bb386929(v=vs.110).aspx
[2]Multiple Active Result Sets (MARS)
http://msdn.microsoft.com/en-us/library/cfa084cz(v=vs.110).aspx
[3]What is late binding?
http://blogs.msdn.com/b/davidklinems/archive/2006/11/27/what-is-late-binding.aspx