Привет, я хотел бы спросить, является ли хорошей идеей создание Singleton, чтобы иметь только одно активное соединение с БД. Что я хотел бы сделать, это:
1) у меня есть сервис wcf
2) сервис wcf получает данные из БД
3) я хотел бы создать подобный синглтон, чтобы иметь только одно соединение с БД:
private static PersistanceSingleton _Instance;
public static PersistanceSingleton Instance
{
get
{
if (_Instance == null)
{
_Instance = new PersistanceSingleton();
}
return _Instance;
}
}
Я знаю, что это не идеальный синглтон, но я просто написал это для этой цели.
Я хотел бы иметь некоторые репозитории персистентности здесь, и я буду создавать их экземпляры в конструкторе.
Внутри моего класса обслуживания у меня будет следующий код внутри конструктора
_DBPersistanceSingleton = PersistanceSingleton.Instance;
Затем, когда приходит какой-то запрос (например, GetUsersRequest), я хотел бы сделать что-то вроде:
_DBPersistanceSingleton.GetUsers()
Перед выполнением каждого вызова в db я также проверю, открыт SqlConnection или нет.
Пожалуйста, дайте мне знать, если это хорошая практика. Причина, по которой я думаю об этом решении, заключается в том, что большое количество пользователей будут подключаться к этому сервису через клиентское приложение