E' giusto che tu abbia una connessione per thread.
Poi sara' il tuo database, nel caso di SQL server, a saper gestire in modo produttivo il pools di connessioni che tu hai stabilito.
Questo articolo in lingua inglese spiega il connection pooling di SQL e perche' tu devi provvedere ad avere una connection per thread chiamante:
Conneciton pooling in SQL