作者wind681201 (阿风~~)
看板C_Sharp
标题[问题] 独体模式中的connection
时间Thu Oct 22 10:12:41 2020
想请问一个问题,在资料库连线时,我想让整个网站都使用同一个connection,所以使用
了独体模式,
但是却会发生一个问题,就是使用DataReader时,会发生[已经开启一个与这个 Command
相关的 DataReader,必须先将它关闭。],
请问各位前辈,通常使用connection的独体模时,怎麽避免这个问题?还是说,
connection的独体模式,只用在DataTable之类的地方呢?
因为我是使用Dapper,感觉Dapper是使用DataReader的。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.183.247.253 (泰国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1603332765.A.360.html
1F:→ ssccg: 只有一个connection,通常就是你要有个queue去控管一次只能 10/22 10:57
2F:→ ssccg: 一个人(thread)用,使用中就要等啊 10/22 10:58
3F:→ ssccg: 不过通常不会自己做这个,会用现有的connection pool机制 10/22 11:00
4F:→ ssccg: 只要一个connection就设定Max Pool Size=1就好 10/22 11:04
5F:→ wind681201: 可是,这样有效能问题,是不是说,独体模式,不适合这 10/22 11:34
6F:→ wind681201: 这样子的方式呢? 10/22 11:34
7F:→ ssccg: 有什麽效能问题? 要有效能问题也是因为你只要一个connectio 10/22 11:40
8F:→ ssccg: n的这个决定,而不是达成一个connection正常运作的实作方式 10/22 11:40
9F:→ ssccg: 也许你想的是一个connection可以multiplex,但现况就不是 10/22 11:42
10F:→ ssccg: connection同一时间只能给一个session用,不能共用 10/22 11:43
11F:→ ssccg: 跟你用什麽模式管理无关,connection要共用就要分时 10/22 11:44
12F:→ wind681201: 谢谢指教 10/22 12:14
13F:→ johnny4753: 通常建议是一个 httprequest 一个connection,不会让 10/26 12:07
14F:→ johnny4753: 连线一直开着,会出现那代表你没用using包起来或实作 10/26 12:07
15F:→ johnny4753: IDisposable 10/26 12:07
16F:→ testPtt: 应该有readasync方法吧 10/26 19:17