Соединение «Закрытие» и «Открытие» не оказывает реального влияния на производительность, если вы правильно используете пул соединений .Пул соединений содержит несколько открытых соединений, которые повторно используются несколькими последующими действиями.Открыть в большинстве случаев означает только «получить соединение из пула», а закрыть - «вернуть соединение в пул».Пул соединений будет обрабатывать открытие нового соединения, если оно не доступно в пуле, а также ограничивать количество одновременно используемых соединений.Пул соединений определяется для каждой строки соединения + идентификатор пользователя.
ExceuteStoreCommand
закрывает соединение, только если соединение не было открыто, когда команда начала выполнение.Это означает, что если вы используете свое собственное соединение, переданное в контекст, оно не закроет его.