Как лучше всего открывать и повторно использовать подключение к базе данных в веб-службе ASP.NET (C# 4.0), которая имеет около 5 веб-методов, использующих одну и ту же базу данных? В идеале ответ будет одинаковым для MS Access и SQL-сервера.
Глобальная частная переменная:
а. Преимущество: простота обслуживания при смене поставщиков баз данных.
б. Недостаток: нельзя использовать предложение «using», и соединение может оставаться открытым слишком долго — сколько примерно времени соединение будет оставаться открытым?
Передайте соединение с БД в качестве параметра метода:
а. Преимущество: можно закрыть соединение, когда оно не требуется, используя пункт «using».
б. Недостаток: раздражает поддерживать и передавать параметр везде
Открывайте и закрывайте соединение с использованием предложения по запросу, когда это необходимо, любым методом:
а. Вопрос. Является ли это самым медленным, потому что вам приходится повторно открывать одно и то же соединение несколько раз? ИЛИ из-за скрытого пула соединений это не медленнее? Таким образом, это, вероятно, будет лучшей практикой…?
б. Вопрос: относится ли пул соединений только к серверу SQL, поэтому он не будет работать для MS Access?
Сначала я думал об использовании глобальной частной переменной (OleDbConnection), так как я довольно часто использую подключение к основной базе данных в веб-методах и методах поддержки, и в ближайшем будущем я буду переходить с MS Access на SQL-сервер и буду легко внести изменения.
Но после прочтения некоторых статей, таких как Получение соединения SQL наиболее эффективно при использовании ASP.NET и веб-служб
кажется, что я могу просто создать новое соединение по запросу в любом месте с помощью пункта «using» и не пострадать от снижения производительности?