[问题] 独体模式中的connection

楼主: wind681201 (阿风~~)   2020-10-22 10:12:41
想请问一个问题,在数据库连线时,我想让整个网站都使用同一个connection,所以使用
了独体模式,
但是却会发生一个问题,就是使用DataReader时,会发生[已经开启一个与这个 Command
相关的 DataReader,必须先将它关闭。],
请问各位前辈,通常使用connection的独体模时,怎么避免这个问题?还是说,
connection的独体模式,只用在DataTable之类的地方呢?
因为我是使用Dapper,感觉Dapper是使用DataReader的。
作者: ssccg (23)   2020-10-22 10:57:00
只有一个connection,通常就是你要有个queue去控管一次只能一个人(thread)用,使用中就要等啊不过通常不会自己做这个,会用现有的connection pool机制只要一个connection就设定Max Pool Size=1就好
楼主: wind681201 (阿风~~)   2020-10-22 11:34:00
可是,这样有效能问题,是不是说,独体模式,不适合这这样子的方式呢?
作者: ssccg (23)   2020-10-22 11:40:00
有什么效能问题? 要有效能问题也是因为你只要一个connection的这个决定,而不是达成一个connection正常运作的实作方式也许你想的是一个connection可以multiplex,但现况就不是connection同一时间只能给一个session用,不能共用跟你用什么模式管理无关,connection要共用就要分时
楼主: wind681201 (阿风~~)   2020-10-22 12:14:00
谢谢指教
作者: johnny4753 (Li)   2020-10-26 12:07:00
通常建议是一个 httprequest 一个connection,不会让连线一直开着,会出现那代表你没用using包起来或实作IDisposable
作者: testPtt (测试)   2020-10-26 19:17:00
应该有readasync方法吧

Links booklink

Contact Us: admin [ a t ] ucptt.com