Обычно лучше избегать синглетонов / статических классов / модулей, если можете.Я понимаю чувство, которое заставляет вас верить, что могут быть причины производительности / ресурсов, чтобы не создавать новые объекты постоянно, но в этих случаях это, как правило, не проблема.
Во-первых, объекты в целомочень легкий в .NET.Более конкретно, хотя;объекты ADO.NET, которые вы будете использовать здесь - DbConnection, DbCommand, DbDataReader и т. д., также очень легковесны.
Но, кроме того, кэширование и повторное использование DbConnection, в частности, могут быть плохими;ADO.NET по умолчанию настроен на использование пула подключений, и поэтому лучший способ использовать DbConnection - открыть его как можно позже, закрыть как можно раньше ... затем создать новый для следующей команды.ADO.NET извлечет эти соединения из пула, и все это будет очень эффективно.
Тем не менее;Я думаю, что до полного запрета ВСЕХ статических классов / модулей еще немного.Их, безусловно, можно найти много полезных.