我收到报告说,当在远程计算机上与sql server一起使用时,连接池在Subsonic orm中不起作用。我不确定他们是如何监控这个,也许是通过分析器。
亚音速打开很晚,因为你应该在一个orm层中提前关闭,但实施中是否有任何问题导致连接过多?
答案 0 :(得分:7)
使用SubSonic时,有一种方法可以保持打开状态。许多人认为,当你加载一个集合时,读者将会为你关闭 - 但事实并非如此(一个类不应该在未经许可的情况下对另一个类进行操作)。出于这个原因,有一种名为“LoadAndCloseReader()”的方法。
如果你能找到更多更好的东西。
答案 1 :(得分:1)
这是否意味着默认情况下SubSonic的连接是持久的?
答案 2 :(得分:1)
我不确定早期版本,但在2.1中,AbstractList.Load()已经使用了包含在using语句中的LoadAndCloseReader(rdr)。
答案 3 :(得分:0)
这是我最近在遇到类似问题后才发现的事情。
Rob说它不应该像这样使用:
MyTableCollection objCol = new MyTableCollection().Load();
应该像:
一样使用MyTableCollection objCol = new MyTableCollection();
objCol.LoadAndCloseReader(MyTable.FetchAll());