Quais são as práticas recomendadas para gerenciar conexões de banco de dados no .NET?

Sobre as práticas recomendadas para gerenciar conexões de banco de dados em um aplicativo .NET - eu sei que, em geral, é ruim passar um objeto de conexão.

No entanto, tenho algumas curiosidades específicas:

1. Eu tenho duas instâncias de objetos de negócios, de classes diferentes, em um relacionamento pai-filho (o filho é privado.) Qual das opções a seguir é a melhor?

Mantenha uma conexão estática privada aberta e compartilhada, usada pelos dois objetos, e deixada aberta até que o pai seja descartado.

Mantenha duas conexões estáticas privadas abertas, uma para cada objeto, para não serem fechadas até que o objeto seja descartado.

Não mantenha conexões estáticas; abra e feche uma nova conexão para todos os métodos que a exigirem. No entanto, a maioria dos meus métodos executa apenas 1-3 consultas, portanto isso parece ineficiente ...?

2. Minha segunda pergunta é essencialmente a mesma, mas para uma única forma. O que há de melhor aqui?

Mantenha uma conexão estática privada aberta e compartilhada durante toda a vida útil do formulário.

Não mantenha uma conexão estática; abra e feche subsequentemente uma conexão para cada método no formulário que a requer (novamente, apenas meras 1-3 consultas por método).

questionAnswers(4)

yourAnswerToTheQuestion