Connection pooling lets you reuse connections. Closing connections does not close the physical connection to the database. When an application requests a connection, an active connection is reused, thus avoiding the network I/O needed to create a new connection. Connection pooling in ADO.NET is not provided by the core components of the .NET Framework. It must be implemented in the ADO.NET data provider itself.
See Chapter 3 “Using Your Data Provider with the ADO.NET Entity Framework” for application programming contexts that use the ADO.NET Entity Framework.