1

リモート マシン上の SQL サーバーで使用すると、サブソニック orm で接続プーリングが機能しないという報告を受けています。おそらくプロファイラーを使用して、彼らがこれをどのように監視しているかはわかりません。

Subsonic は、orm レイヤーで行うことになっているように遅く開き、早く閉じますが、実装に問題があり、接続が多すぎますか?

4

4 に答える 4

7

SubSonic を使用しているときに接続を開いたままにする方法があります。多くの人は、コレクションをロードするとリーダーが閉じられると想定していますが、そうではありません (クラスは許可なく別のクラスに作用するべきではありません)。このためだけに「LoadAndCloseReader()」というメソッドがあります。

さらに詳しく知ることができれば、それは素晴らしいことです。

于 2009-03-30T19:19:46.487 に答える
1

以前のバージョンについてはわかりませんが、2.1 では AbstractList.Load() はすでに using ステートメントでラップされた LoadAndCloseReader(rdr) を使用しています。

于 2010-01-31T14:08:54.187 に答える
1

これは、SubSonic の接続がデフォルトで永続的であることを意味しますか?

于 2009-04-16T10:19:52.317 に答える
0

これは、同様の問題を抱えた後、私が最近発見したものです。

ロブが言ったように、次のように使用しないでください。

MyTableCollection objCol = new MyTableCollection().Load();

次のように使用する必要があります。

MyTableCollection objCol = new MyTableCollection();
objCol.LoadAndCloseReader(MyTable.FetchAll());
于 2009-11-30T04:58:05.003 に答える