У меня была именно эта проблема с базой данных на 250 таблиц. Обыскивая SQLServer.ttinclude, я нашел это:
var cmd=GetCommand(sql);
cmd.Parameters.AddWithValue("@tableName",table);
var result=cmd.ExecuteScalar();
cmd.Dispose();
if(result!=null)
pk=result.ToString();
Изменил это на:
using (var cmd=GetCommand(sql))
{
cmd.Parameters.AddWithValue("@tableName",table);
int x = 0;
if (table == "tbl_Address")
x++;
var result=cmd.ExecuteScalar();
if(result!=null)
pk=result.ToString();
cmd.Connection.Close();
}
Соединение не закрывалось, и после 100 из вас заканчиваются соединения в пуле. Любая БД с более чем 100 таблицами столкнется с этой проблемой. Довольно удивительно, что я мог это исправить, не касаясь SubSonic.Core.
Теперь, если я смогу потратить время на изучение Git, я бы отправил это исправление обратно в дозвуковой проект. : -D