[問題] 獨體模式中的connection

看板C_Sharp (C#)作者 (阿風~~)時間3年前 (2020/10/22 10:12), 編輯推噓0(0016)
留言16則, 4人參與, 3年前最新討論串1/1
想請問一個問題,在資料庫連線時,我想讓整個網站都使用同一個connection,所以使用 了獨體模式, 但是卻會發生一個問題,就是使用DataReader時,會發生[已經開啟一個與這個 Command 相關的 DataReader,必須先將它關閉。], 請問各位前輩,通常使用connection的獨體模時,怎麼避免這個問題?還是說, connection的獨體模式,只用在DataTable之類的地方呢? 因為我是使用Dapper,感覺Dapper是使用DataReader的。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.183.247.253 (泰國) ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1603332765.A.360.html

10/22 10:57, 3年前 , 1F
只有一個connection,通常就是你要有個queue去控管一次只能
10/22 10:57, 1F

10/22 10:58, 3年前 , 2F
一個人(thread)用,使用中就要等啊
10/22 10:58, 2F

10/22 11:00, 3年前 , 3F
不過通常不會自己做這個,會用現有的connection pool機制
10/22 11:00, 3F

10/22 11:04, 3年前 , 4F
只要一個connection就設定Max Pool Size=1就好
10/22 11:04, 4F

10/22 11:34, 3年前 , 5F
可是,這樣有效能問題,是不是說,獨體模式,不適合這
10/22 11:34, 5F

10/22 11:34, 3年前 , 6F
這樣子的方式呢?
10/22 11:34, 6F

10/22 11:40, 3年前 , 7F
有什麼效能問題? 要有效能問題也是因為你只要一個connectio
10/22 11:40, 7F

10/22 11:40, 3年前 , 8F
n的這個決定,而不是達成一個connection正常運作的實作方式
10/22 11:40, 8F

10/22 11:42, 3年前 , 9F
也許你想的是一個connection可以multiplex,但現況就不是
10/22 11:42, 9F

10/22 11:43, 3年前 , 10F
connection同一時間只能給一個session用,不能共用
10/22 11:43, 10F

10/22 11:44, 3年前 , 11F
跟你用什麼模式管理無關,connection要共用就要分時
10/22 11:44, 11F

10/22 12:14, 3年前 , 12F
謝謝指教
10/22 12:14, 12F

10/26 12:07, 3年前 , 13F
通常建議是一個 httprequest 一個connection,不會讓
10/26 12:07, 13F

10/26 12:07, 3年前 , 14F
連線一直開著,會出現那代表你沒用using包起來或實作
10/26 12:07, 14F

10/26 12:07, 3年前 , 15F
IDisposable
10/26 12:07, 15F

10/26 19:17, 3年前 , 16F
應該有readasync方法吧
10/26 19:17, 16F
文章代碼(AID): #1VaEgTDW (C_Sharp)
文章代碼(AID): #1VaEgTDW (C_Sharp)